我们的 ASP.Net webforms 站点通常需要五分钟来启动并在 IISReset 或在 Visual Studio 中构建后呈现第一页。我们已经在 web.config 中使用了诸如optimizeCompilations属性之类的东西,并且已经取得了一些进展,但想更多地了解为什么需要这么长时间以及确切的瓶颈在哪里。
有没有我们可以用来检测和分析 ASP.Net 网站启动期间发生的事情的工具?我们使用的是 IIS7,我们的网站是用 .Net 4.0 编译的。
我们的 ASP.Net webforms 站点通常需要五分钟来启动并在 IISReset 或在 Visual Studio 中构建后呈现第一页。我们已经在 web.config 中使用了诸如optimizeCompilations属性之类的东西,并且已经取得了一些进展,但想更多地了解为什么需要这么长时间以及确切的瓶颈在哪里。
有没有我们可以用来检测和分析 ASP.Net 网站启动期间发生的事情的工具?我们使用的是 IIS7,我们的网站是用 .Net 4.0 编译的。
在 web.config上的Compilation 键the batch compile
中找到了它花费太长时间的原因。
您可以更改一些批处理相关参数以将批处理编译限制为更少的页面/模块,从而使您的站点启动得更快一些。架构和影响它的值:
<compilation
debug="[true|false]"
batch="[true|false]"
batchTimeout="number of seconds"
maxBatchSize="maximim number of pages"
maxBatchGeneratedFileSize="maximum combined size"
numRecompilesBeforeAppRestart="number"
optimizeCompilations="[true|false]"
如果您想了解编译时发生了什么,您可以尝试使用 MS Windows SysInternals 的Process Monitor。您可以看到当时所有的文件读取和编译,以及正在打开/检查的内容等。
<compilation debug="true" batch="false"
optimizeCompilations="true" maxBatchGeneratedFileSize="800" maxBatchSize="100" >