<编译>是什么时候?用于 ASP.net

发布于 2024-09-06 09:22:05 字数 277 浏览 2 评论 0原文

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

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

编译设置是指当客户端请求时 IIS/ASP.net 何时编译 ASPX 页面,还是指创建程序集时的 Visual Studio 编译过程。

使用在 Visual Studio 中使用调试构建的程序集是否仍然允许上述设置起作用?

I'm having some trouble setting the ExecutionTimeout element in my applications web.config.

My page is making a lengthy webservice call and times out after 110 seconds. (the default I believe). I set the value to 220, and make sure the compilation debug=false.

Does the compilation setting refer to when IIS/ASP.net compiles the ASPX pages when a client requests them, or does it refer to the visual studio compile process there the assemblies are created.

Would using an assembly built using debug in visual studio still allow the above settings to work?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

吃兔兔 2024-09-13 09:22:05

当人们请求时,IIS 不会编译 aspx 页面。如果您在 VS 中有一个“Web 应用程序项目”,则可以在部署之前编译所有隐藏代码和其他类文件。如果您在 VS 中有一个“网站项目”,那么 Web 服务器仅在第一次请求时编译您的应用程序。发生其中任一情况后,除非您进行更改,否则不会再次编译应用程序。

考虑到上面的信息,这是编译 debug = true | 的时候。 false 发挥作用。设置 debug = true 后,您可以获得一些有关错误和其他事件的非常详细的信息,但由于将调试符号插入到 .dll 中,它可能会使您的应用程序运行速度变慢,并且总体而言,它并未针对性能进行优化。通过设置 debug = false,您不会获得完全相同级别的错误报告,但您确实可以恢复性能增益。

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

IIS does not compile aspx pages when people request them. If you have a 'web application project' in VS, you compile all of your code behinds and other class files before you deploy. If you have a 'web site project' in VS, then the web server compiles your app on first request only. After either one of these happen, the application is not compiled again until you make a change.

With that information in mind above, this is when the compilation debug = true | false comes into play. Having debug = true, you get some pretty detailed information back on errors and other events but it can make your app run slower as debug symbols are inserted into the .dll and overall, it is not optimized for performance. By setting debug = false, you don't get quite the same level of error reporting, but you do get your performance gains back.

If you build in VS, it will build according to the settings in the web.config unless it is an external .dll/class project that you are including. If that is the case, the web.config settings mean nothing to that .dll and will run regardless of what combination of debug = false|true you have on those two projects.

幽梦紫曦~ 2024-09-13 09:22:05

编译标签用于添加IIS或Visual Studio编译引用的库,并指定调试和批量编译模式。

说到 debug 属性,这里有好文章,其中包含所有详细信息米兰·尼戈万博客。

还有关于编译本身。

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

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

网站项目默认使用就地编译。

并且必须显式指定不可更新的完整预编译。当 compilation 标签出现时。如果 batch="true" 那么应用程序中的所有页面都将在第一次请求任何页面时进行编译。这让我们想到了关于大型应用程序的另一个故事:)

请注意,编译模型中还有一些其他细节,请查看 ASP.NET 预编译概述(如果您确实需要的话)。

Compilation tag is used to add referenced libraries for compilation by IIS or Visual Studio and to specify debug and batch compilation modes.

Speaking of debug attribute, here's good article with all the details in Milan Negovan blog.

And about compilation itself.

There are 3 modes of compilation. They are fully described in MSDN Overview.

By default web application uses updateable precompilation: all .cs files are compiled into one assembly, but all pages, controls and master pages are compiled on demand into new derived class.

Web Site project uses in-place compilation by default.

And non-updateable full precompilation must be specified explicitly. And here when compilation tag comes in. If batch="true" then all pages in application will be compiled upon first request to any page. This moves us to yet another story about big applications :)

Note that there are some other specifics in compilation model, look into ASP.NET Precompilation Overview if you really need this.

失去的东西太少 2024-09-13 09:22:05

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

  • App_Code 文件夹中的代码

  • 网站项目的代码旁页面中的代码

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

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

IIS compiles ASPX pages (and ASCX UserControls, ASHX, ASMX, ...) the first time they are requested. It also dynamically compiles:

  • Code in the App_Code folder

  • Code in code-beside pages for a website project

The compilation element in web.config refers to this compilation.

If you are using a Web Application Project in Visual Studio, your ASPX pages will have a code-behind file. This is compiled into a DLL when the project is built in Visual Studio, and won't be affected by the web.config compilation element.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文