何时是<编译>用于ASP.net

我在我的应用程序web.config中设置ExecutionTimeout元素时遇到了一些麻烦。 我的页面正在进行冗长的Web服务调用,并在110秒后超时。 (默认我相信)。我将值设置为220,并确保编译debug = false。 编译设置是指IIS / ASP.net何时在客户端请求时编译ASPX页面,或者是否引用Visual Studio编译过程创建程序集。 在Visual Studio中使用使用调试构建的程序集是否仍允许上述设置工作?     
已邀请:
当人们请求时,IIS不会编译aspx页面。如果在VS中有“Web应用程序项目”,则在部署之前编译所有代码隐藏和其他类文件。如果您在VS中有“网站项目”,则Web服务器仅在第一次请求时编译您的应用程序。在其中任何一个发生之后,在您进行更改之前不会再次编译应用程序。 考虑到上面的信息,这是编译debug = true |的时候虚假发挥作用。调试= true后,您可以获得有关错误和其他事件的一些非常详细的信息,但是当调试符号插入到.dll中时,它会使您的应用程序运行速度变慢,并且整体上没有针对性能进行优化。通过设置debug = false,您无法获得完全相同的错误报告级别,但您确实可以获得性能提升。 如果你在VS中构建,它将根据web.config中的设置进行构建,除非它是你所包含的外部.dll / class项目。如果是这种情况,web.config设置对该.dll没有任何意义,并且无论你在这两个项目上有什么组合的debug = false | true,都会运行。     
编译标记用于添加引用的库以供IIS或Visual Studio编译,并指定调试和批处理编译模式。 说到
debug
属性,这里有关于Milan Negovan博客中所有细节的好文章。 关于编译本身。 有3种编译模式。它们在MSDN概述中有详细描述。 默认情况下,Web应用程序使用可更新的预编译:所有
.cs
文件都编译为一个程序集,但所有页面,控件和母版页都按需编译到新的派生类中。 Web站点项目默认使用就地编译。 必须明确指定不可更新的完整预编译。在这里当
compilation
标签进来。如果
batch="true"
那么应用程序中的所有页面将在第一次请求时编译到任何页面。这将我们带到另一个关于大型应用的故事:) 请注意,编译模型中还有一些其他细节,如果您确实需要,请查看ASP.NET预编译概述。     
IIS在第一次请求时编译ASPX页面(以及ASCX UserControls,ASHX,ASMX,...)。它还动态编译: App_Code文件夹中的代码 网站项目的代码旁边的代码 web.config中的编译元素引用此编译。 如果在Visual Studio中使用Web应用程序项目,则ASPX页面将具有代码隐藏文件。当项目在Visual Studio中构建时,这将编译为DLL,并且不受web.config编译元素的影响。     

要回复问题请先登录注册