当我在Visual Studio中启动新的ASP.NET项目时,我可以创建ASP.NET Web应用程序,也可以创建ASP.NET网站。

ASP.NET Web应用程序和ASP.NET网站之间的区别是什么?为什么我会选择一个而不是另一个?

答案是否因我使用的Visual Studio版本而异?


当前回答

来自MCTS自定进度训练包考试70-515书:

利用web应用程序(项目),您可以创建MVC应用程序。Visual Studio将文件列表存储在项目文件(.csproj或.vbproj)中,而不是依赖于文件夹结构。不能混合使用Visual Basic和C#。不停止调试会话就无法编辑代码。您可以在多个web项目之间建立依赖关系。您必须在部署之前编译应用程序,这将阻止您在另一页无法编译时测试该页。您不必将源代码存储在服务器上。您可以控制程序集名称和版本。如果不重新编译,则无法在部署后编辑单个文件。

其他回答

这始终取决于客户的要求。ASP.NET仅包含用户需要的灵活功能,以确保应用程序的安全性和易于维护。

您可以将Web应用程序视为在ASP.NET框架内运行的二进制文件。网站是一个静态网页,您可以查看并轻松部署源代码。

但这两种ASP.NET技术的优点和缺点都是好的。

应用程序通常在部署之前编译,因为网站使用app_code目录。当应用程序代码文件夹中发生任何更改时,服务器将重新编译代码。这意味着您可以随时在网站上添加/更改代码。

应用程序的优点是无需重新编译,因此初始启动时间会更快。

在web应用程序中,您可以创建项目功能的层,并通过将其划分为多个项目来创建它们之间的相互依赖关系,但您永远无法在网站上做到这一点。

网站和Project>>网站是使用visual studio创建ASP.NET应用程序的两种不同方法。一个是无项目的,另一个是项目环境。差异如下

解决方案文件存储在项目环境中与根目录相同的目录中。在项目环境中部署之前,需要删除解决方案和项目文件。完整的根目录部署在无项目环境中。

使用这两种方法都没有太大的基本区别。但如果您创建的网站需要更长的时间,请选择项目环境。

Web应用程序需要更多的内存,可能是因为您别无选择,只能编译成一个程序集。我刚刚将一个大型遗留站点转换为web应用程序,在编译时内存不足,错误消息如下:

Unexpected error writing metadata to file '' -- 
Not enough storage is available to complete this operation. 

错误,并在运行时显示以下错误消息:

Exception information: 
    Exception type: HttpException 
    Exception message: Exception of type 'System.OutOfMemoryException' was thrown.
   at System.Web.Compilation.BuildManager.ReportTopLevelCompilationException()

我对在内存受限的传统硬件上转换大型站点的建议是,选择恢复到网站模型的选项。即使在最初的成功之后,问题也可能会在以后慢慢出现。