我正在开发一个.NET WebForms应用程序,我观察到无论何时构建,构建之后,第一页加载的时间比通常要长。即使我在加载页面之前等待构建后,也会发生这种情况。有没有办法通过更改IIS / .NET来初始化postbuild而不是首页加载来提高人力资源的性能?
答案 0 :(得分:2)
是的,你可以像this一样。 引用:
您可以使用IIS 8.0内置的应用程序初始化模块,如下所示:
<applicationInitialization
doAppInitAfterRestart="true" >
<add initializationPage="/" />
</applicationInitialization>
每当您的应用自动启动时,这将向您的应用的根目录发送请求(initializationPage =“/”)。
您还可以将应用程序池的启动模式配置为始终运行,这意味着每次IIS重新启动时,都会确保立即启动应用程序池(如果右键单击您的应用程序,则然后池高级设置)。
答案 1 :(得分:0)
专业服务器几乎没有任何延迟,但需要进行相当多的调整。此外,默认情况下,应用程序会定期在IIS上进行回收(以及发生某些类型的异常,更改某些文件或达到某些阈值时)。专业的Web应用程序托管绝非简单:)您可能会在Server Fault上获得有关它的帮助。
另一个选择是避免混合预编译和JIT编译 - 如果您只是预编译,则在部署应用程序时不需要进行任何编译,从而缩短启动时间。如果您只部署源,则在进行更改时不需要拆除应用程序域,这意味着只需要重新编译更改,这要快得多。
当然,ASP.NET Core在两种情况下都要快得多 - 它可以在内存中进行整个编译,这与使用csc
构建多个程序集的遗留系统不同,将它们保存到磁盘,从磁盘加载,将它们合并在一起,再次保存 ,只是再次加载并初始化。