首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.net中何时使用<Compilation>

ASP.net中何时使用<Compilation>
EN

Stack Overflow用户
提问于 2010-06-23 17:58:52
回答 3查看 1.1K关注 0票数 2

在我的应用程序web.config中设置ExecutionTimeout元素时遇到了一些问题。

我的页面正在进行冗长的out服务调用,并在110秒后超时。(我相信这是默认设置)。我将值设置为220,并确保编译debug=false。

编译设置是指IIS/ASP.net在客户端请求时编译ASPX页,还是指在其中创建程序集的visual studio编译过程。

在visual studio中使用使用debug生成的程序集是否仍允许上述设置工作?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-06-23 21:09:50

当人们请求时,IIS不编译aspx页。如果您在VS中有一个“web应用程序项目”,那么在部署之前,您需要编译所有的代码和其他类文件。如果你在VS中有一个“网站项目”,那么web服务器只会在第一次请求时编译你的应用程序。无论发生哪一种情况,应用程序都不会再次编译,直到您进行更改。

记住上面的信息,这就是编译debug = true | false发挥作用的时候了。使用debug = true,你会得到一些关于错误和其他事件的非常详细的信息,但它可能会使你的应用程序运行速度变慢,因为调试符号被插入到.dll中,总的来说,它没有针对性能进行优化。通过设置debug = false,您不会获得完全相同的错误报告级别,但您确实可以获得性能提升。

如果您在VS中构建,它将根据web.config中的设置进行构建,除非它是您正在包含的外部.dll/类项目。如果是这样的话,web.config设置对该.dll没有任何意义,并且无论您在这两个项目上有什么debug = false|true组合,它都将运行。

票数 2
EN

Stack Overflow用户

发布于 2010-06-23 21:45:33

编译标记用于添加要由IIS或Visual Studio编译的引用库,并指定调试和批处理编译模式。

说到debug属性,这里是米兰Negovan博客中所有细节的good article

以及编译本身。

有3种编译模式。在MSDN Overview中对它们进行了完整的描述。

默认情况下,web应用程序使用可更新的预编译:所有.cs文件都编译到一个程序集中,但所有页面、控件和母版页都按需编译到新的派生类中。

默认情况下,网站项目使用就地编译。

并且必须显式指定不可更新的完全预编译。在这里,当compilation标签进来的时候。如果为batch="true",则应用程序中的所有页面将在第一次请求任何页面时编译。这将我们带到另一个关于大型应用程序的故事:)

请注意,在编译模型中还有其他一些细节,如果您确实需要的话,请查看ASP.NET Precompilation Overview

票数 1
EN

Stack Overflow用户

发布于 2010-06-23 21:24:40

IIS编译ASPX页面(以及ASPX UserControls,ASHX,ASPX,...)第一次请求它们时。它还动态编译:

App_Code文件夹中的

  • 代码

网站项目的代码旁页中的

  • 代码

web.config中的compilation元素引用此编译。

如果在Visual Studio中使用Web应用程序项目,则ASPX页将具有代码隐藏文件。当项目在Visual Studio中生成时,它会被编译成DLL,并且不会受到web.config编译元素的影响。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3100602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档