诊断ASP.Net网站启动缓慢

lar*_*ryq 4 asp.net performance

我们的ASP.Net Webforms网站通常需要五分钟才能启动并在IISReset或在Visual Studio中构建后呈现第一页。我们已经使用了诸如web.config中的optimizeCompilations属性之类的东西,并取得了一些进展,但想进一步了解为什么需要这么长时间以及确切的瓶颈在哪里。

是否有可用的工具来检测和分析ASP.Net网站启动过程中发生的情况?我们正在使用IIS7,并且我们的网站是在.Net 4.0中编译的。

Ari*_*tos 5

在web.config the batch compile上的Compilation键中找到了花费时间太长的原因。

您可以更改某些批处理相对参数,以将批处理编译限制为更少的页面/模块,因此您的网站启动速度会更快一些。模式和影响它的值

<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]"
Run Code Online (Sandbox Code Playgroud)

如果您想了解编译时发生了什么,可以尝试使用MS Windows SysInternals中的Process Monitor。您可以看到当时所有文件的读取和编译以及打开/检查的内容等。

我在本地(不在服务器上)的示例

<compilation debug="true" batch="false" 
     optimizeCompilations="true" maxBatchGeneratedFileSize="800" maxBatchSize="100" >
Run Code Online (Sandbox Code Playgroud)