2010-09-13 124 views
1

我的理解是asp.net页面被分组在文件夹中,每个文件夹被编译成一个dll文件。但是,第一次请求页面时,仅编译该页面?那么是否有可能编译dll文件的一部分?当请求页面时,是否只执行dll文件中的页面代码,而不是整个dll?不知何故,我有一个令人印象深刻的感觉,应该整体编译或执行一个dll文件。asp.net页面是按页面还是按文件夹编译的?

+1

提供的答案有帮助吗?如果是这样,请将其中一个标记为答案,或以任何方式赞扬那些对您有帮助的人。 – sisve 2010-09-15 05:28:00

回答

0

但是,当第一次请求页面时,仅编译该页面?

如果您的应用程序是一个网站,当它调用第一次ASPX页面编译automatically.But不是Web应用程序,当你建立

那么,这可以通过编译一个dll文件的一部分,它会编译一次? 意味着你想编译项目的特定部分。

2

您的回答存在于ASP.NET Compilation Overviewcompilation element之内。

目录在浏览时编译,但batch = true/false配置是否只编译加载的页面或该目录中的所有页面。 (有一个maxBatchSize,用于配置最多可以批量编译的页面。)

2

如果已启用batch = true,则页面可以编译每个文件夹。编译器编译在未编译的文件夹中找到的第n个页面。

还编译所需的所有模块,您所运行的页面。当再次发现另一个尚未编译的页面时,再次编译第二组n个文件。

使用batch = true编译多少个文件的限制是从compilation settings设置的。

如果我理解得很清楚,你会寻找一种方法来培育发展。

对于您的开发计算机,我建议2设置。

<compilation batch="false" optimizeCompilations="true" ... > 

当batch = false时,只有你要求的文件被调用。如果optimizeCompilations = true,则编译器不会在dll上构建函数,如果它们没有更改,则会隐藏一些缓存文件。

阅读也:Slow Performance -- ASP .NET ASPNET_WP.EXE and CSC.EXE Running After Clicking Redirect Link

如果您有与编译的问题然后设置optimizeCompilations =假。

当optimizeCompilations处于打开状态时,会出现编译无法理解函数的更改并且出现错误的情况。一种情况是当你有一个函数调用时,通过添加一个带有默认值(net4)的参数来改变函数。在这种情况下,编译器不会再次编译它,并且这会产生一些产品错误。