问题标签 [web-application-project]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2181 浏览

asp.net - Typed DataSets in WebApplication Projects

I am converting an older C# Website Project into a Web Application Project so that we can better manage it in our source control system. I have run into a problem.

The Website Project used strongly-typed-datasets (i.e. .XSD files). There is C# code written that uses these strongly typed datasets as an object. That worked fine when it was a Website Project but does NOT compile now that it is a Web Application project. The compiler can not find the reference to the datas set because datasets are not compiled.

Is there an easy solution to this problem?

0 投票
2 回答
1858 浏览

asp.net - web.config 中的默认命名空间(Web 应用程序项目)

我有一个网站项目,我将其转换为一个 Web 应用程序项目。我在 web.config pages/namespaces 部分定义了一组命名空间。但是我无法在我的代码隐藏 (.vb) 文件中看到它们。这曾经在网站项目中运行良好。有人可以说明一下吗?

谢谢,

0 投票
3 回答
1262 浏览

asp.net - 预编译 Web 应用程序项目设置为可更新的性能优势?

如果将 asp.net Web 应用程序设置为可更新,那么预编译它是否有任何性能优势?通过设置预编译器可更新标志,它不会预编译 aspx、ascx 等,因此它们仍然必须在运行时在第一页加载时进行编译。无论如何,ASP.NET Web 应用程序项目中的其他所有内容都已编译,那么在可更新标志设置为 true 的 WAP 上运行预编译器有什么意义?

0 投票
2 回答
228 浏览

visual-studio - 为什么 VS2005 中的 Web 应用程序项目提供“转换为 Web 应用程序”菜单选项

我相信我完全理解 Visual Studio 2005 的网站模型与在 VS2005 SP1 中完全交付的 Web 应用程序项目模型之间的区别 - 但我遇到了一件令人困惑的事情:

我有一个我编写的 Web 应用程序项目(它有一个 bin 文件夹,其中包含已编译的 projectname.dll 和引用的 .dll 等)。但我只是注意到,如果我在解决方案资源管理器中右键单击该项目,则会显示一个名为“转换为 Web 应用程序”的菜单项)。这对我来说毫无意义。

我正在将此项目与 VS2005 中的“网站”解决方案进行比较,并考虑将其转换为 Web 应用程序项目。奇怪的是,解决方案资源管理器在这里没有提供任何与“转换为 Web 应用程序”相关的内容,就像人们认为可能和/或适当的那样。

我的结论是没有什么可以帮助自动将“网站”结构更改为适当的“网络应用程序项目”。我认为这一切都必须手工完成。将 App_Code 中的文件重构为一个或多个类库项目等任务需要手动完成。

我意识到已经写了很多关于历史和差异的文章,但是有人可以解释为什么“转换为网络应用程序”的提议似乎是在“错误的”模型中提出的 - 并确认转换是手动的。

0 投票
2 回答
5441 浏览

visual-studio-2005 - 如何为 ASP.NET“网站”项目设置平台目标

我一直在“网站项目”和“网络应用程序项目”之间遇到各种细微差别——这对我来说是最新的:

我继承了一个带有多个类库项目(DAL.dll、Biz.dll 等)的 Visual Studio 2005 解决方案,但这都是由网站项目而不是 Web 应用程序项目“正面”的。

虽然web 应用程序项目提供了一个平台目标下拉列表(任何 CPU、x86、x64),但糟糕的网站项目似乎没有提供类似的东西。当托管在 64 位 IIS 机器上时,有没有办法确保网站以 x86 方式运行?

..我为什么要问这个的更大的图景:

该网站在 64 位机器(Win Server 2003)上运行,并且[我刚刚了解到]无法加载我认为已使用 Runtime Callable Wrapper 包装的 32 位 COM 对象。因为它无法加载这一部分,所以设置了一个 web.config 设置,通过绕过这个 32 位 dll 的加载来避免运行时加载错误(但是当站点在 64 位上运行时,COM dll 的所有功能因此“丢失”位机)。

所以,总而言之,我假设 64 位机器上的网站必须在 IIS 中作为 64 位应用程序运行,如果我可以让网站以 32 位运行,那么它可以加载 COM dll 并因此执行该功能的应用程序。

注意:我已经并且仍然在这里进行研究,以准备在我访问实际开发环境时快速吸收,所以我的大部分问题都是基于将我即将面临的 [预期] 问题的部分拼凑起来的。谢谢。

0 投票
3 回答
273 浏览

webforms - 使用页面类型获取 aspx 页面的 url

我正在使用一个 Web 应用程序项目。

我的 web 根目录中有一个名为 Users 的文件夹,在该文件夹中我有一个名为 UserList.aspx 的页面

我想要做的是输入 Response.Redirect(Users.UserList.URL)

我认为我可以做的是创建一个扩展 Page 的类并添加一个名为 URL 的静态属性,该属性调用 MethodInfo.GetCurrentMethod().ReflectedType (我认为这还没有测试过),然后转换 Users.UserList -> ~/Users/UserList.aspx

我知道的这种方法的问题是我需要遍历每一页并使其扩展基类,并且它不适用于任何包含“-”字符的页面。

优点是,如果页面被移动,则没有任何断开的链接(当页面名称空间错误时,Resharper 会给出)。

此外,每个接受查询字符串参数的单独页面都可以有一个静态方法,这样如果我想添加/删除参数,我可以看到使用这些参数等的内容。另外,如果我想调用该页面,我不必检查参数的名称,例如 UserId userId、Id 或 id。所以这看起来像 Users.ViewUser.GetUrl(1) -> ~/Users/ViewUser.aspx?UserId=1

所以问题是:有没有更好的方法来做到这一点?还是原则上这是一个坏主意?

0 投票
1 回答
2932 浏览

c# - 如何使用 Visual Studio 2008 SP1 中的 Web 设置项目在 IIS 中创建新网站

我的解决方案中有一个 Web 应用程序项目和一个 Web 设置项目。

当我运行由 Web 设置项目创建的 MSI 时,它只让我可以选择使用本地计算机上 IIS 中已经存在的网站。

如何让安装程序让我选择在 IIS 中创建新网站?

谢谢

0 投票
1 回答
242 浏览

c# - 使用 System.Web.Routing.UrlRoutingModule 时如何阻止对文件的访问?

我正在使用 System.Web.Routing.UrlRoutingModule。

我正在写:

我也有一条路线叫:

但是如果我直接去 /Order/CartAdd.ashx 我永远不会进入路由。它直接转到那个处理程序。如果我去 /Order/ 我得到一个 403.14 错误。

我如何改为通过路由捕获这些 url?

0 投票
1 回答
1273 浏览

asp.net - 在aspx页面中实现接口

由于超出本次讨论范围的原因(比如将一个 aspx 页面复制到一个目录,这样我们就不必重新构建),我们希望在一个 aspx 页面中实现一个接口。比如说,如果页面是 myPage .aspx,通常是代码隐藏中的类 mypage.aspx.cs 实现接口。当我做这样的事情

我收到一个错误

但是,当不指定Inherits属性时,页面不会引发错误。所以默认情况下,当我们不指定Inherits属性时,页面继承自System.web.UI.Page?

我们正在使用 VS2008 Web 应用程序项目并且没有预编译 aspx 页面。我们希望在 HTTPModule(开始请求)中截获对这个页面的请求,如果请求是对 ICustomInterface 类型的页面,我们希望以不同的方式处理它。

如何才能做到这一点 ?

0 投票
2 回答
1931 浏览

asp.net - 无法从 Web 应用程序项目中的代码隐藏页面访问自定义继承 Web 控件的实例

我从 ASP.NET WebControl 继承来添加一些附加功能。我在一个空白的 ASP.NET 网站(通过文件 > 新网站...创建)中测试了我的控件,它运行良好。但是当我将它添加到 Web 应用程序项目(通过文件 > 新项目...> Visual Basic > Web > ASP.NET Web 应用程序创建时,我无法让它工作。我个人更喜欢网站以便于开发,但是我现在正在与之合作的项目领导希望将其保留为 Web 应用程序(他们喜欢它将所有页面代码预编译到 Bin 文件夹中的单个 DLL 中的方式。)

为了隔离问题,我尝试使用简单的MSDN 演练重现它:开发和使用自定义服务器控件。令我惊讶的是,我在那里遇到了同样的问题:如果将其构建到 ASP.NET Web 应用程序项目中,然后尝试从页面的代码隐藏中访问控件的实例,则会收到编译错误 BC30456: 'WelcomeLabel1 ' 不是 'WebApplication1._Default' 的成员。例如,在页面加载中,写:

Me.WelcomeLabel1.Text = "foo"

但是,如果您只是删除后面的那行代码,它就会正确编译,并且浏览器会显示带有正确格式标签的页面。对我来说,这是编译器/框架中的一个错误,因为如果控件被正确注入页面,它应该始终在代码隐藏中可用,对吗?

有任何想法吗?我想我可以按照演练中进一步的建议将我的控件编译成一个程序集,但这似乎有点矫枉过正。

有趣的是,我可以使用 FindControl 来获取对 WelcomeLabel 的引用,但我无法将其转换为适当的类型。这样做会导致错误“无法将'Samples.AspNet.VB.Controls.WelcomeLabel'类型的对象转换为'WebApplication2.Samples.AspNet.VB.Controls.WelcomeLabel'。” 我已经尝试了我能想到的命名空间和导入的所有组合,甚至手动将声明添加到 Designer.vb 文件,但我无法让它工作,除非我当然切换到一个网站项目,我做不到。

更新 1.1:

为了澄清,我试图实现的是:

  1. 网络应用项目
  2. 在同一程序集中继承 Web 控件类文件(即不从单独编译的 DLL 中引用)
  3. 通过设计时标记添加到页面的控件
  4. 从页面代码隐藏引用的控件实例

编辑:重新阅读布莱恩的评论后,我终于明白了。实际上非常简单:您所要做的就是将Assembly="WebApplication1"添加到标记中的<%@Register%>指令中,然后添加“WebApplication1”。命名空间指令的前缀。所以:

现在,您应该可以通过标记实例化控件并从代码隐藏访问实例,无论您将控件的类文件放在 App_Code 中还是其他任何地方。

乔丹·里格