.NET 构建显着减慢首页加载速度

.NET build slows first page load significantly

我正在开发一个 .NET WebForms 应用程序,我发现每当我构建时,在构建之后,第一个页面的加载时间比平时要长。即使我在加载页面之前等待构建之后,也会发生这种情况。有没有一种方法可以通过更改 IIS/.NET 以在构建后而不是首页加载时初始化事物来提高人力绩效?

专业服务器几乎没有任何延迟,但需要进行相当多的调整。此外,默认情况下,应用程序会在 IIS 上定期回收(以及在发生某些异常、更改某些文件或达到某些阈值时)。专业的 Web 应用程序托管绝非易事 :) 您可能会在 Server Fault 上获得帮助。

另一种选择是避免混合预编译和 JIT 编译 - 如果您只进行预编译,则在部署应用程序时不需要进行任何编译,从而加快启动时间。如果只部署源码,应用域在改动的时候不需要拆除,也就是说只需要重新编译改动的部分,速度会快很多。

当然,ASP.NET Core 在这两种情况下都快得多 - 它可以在内存中进行整个编译,这与使用 csc 构建多个程序集的遗留系统不同,将它们保存到磁盘,从磁盘加载它们,将它们合并在一起,再次保存,只是为了再次加载它并初始化。

是的,你可以,比如 this。 引用:

您可以使用 IIS 8.0 自带的应用程序初始化模块,如下所示:

<applicationInitialization
     doAppInitAfterRestart="true" >
   <add initializationPage="/" />
</applicationInitialization>

这会在您的应用程序每次自动启动时向您的应用程序的根目录 (initializationPage="/") 发送一个请求。

您还可以将应用程序池的启动模式配置为始终运行,这意味着每次 IIS 重新启动时,它都会确保立即启动您的应用程序池(如果右键单击您的应用程序池,然后 高级设置 )。