我在IIS 8.0中运行ASP.NET MVC webapp.在收到请求之前,我的应用程序需要预热.我们已经有一个流程来在部署新代码时自动预热应用程序.但是,我们看到定期应用程序池回收事件导致应用程序未预热.
是否有检测应用程序池循环事件和执行脚本或某些代码的最佳实践?
解决方法
你可以做几件事:
1.应用程序初始化
您可以使用IIS 8.0内置的Application Initialization Module
你可以在你的web.config中有这样的东西
<applicationInitialization doAppInitAfterRestart="true" > <add initializationPage="/" /> </applicationInitialization>
每当您的应用自动启动时,这将向您的应用的根目录(initializationPage =“/”)发送请求.
您还可以将应用程序池的“启动模式”配置为“始终运行”,这意味着每次IIS重新启动时,都会确保立即启动应用程序池(如果右键单击应用程序池,则进行高级设置)
和您网站本身的预加载(右键单击该站点,然后单击管理站点,然后单击高级设置
2.禁用空闲超时
此外,您可以通过将应用程序池的空闲超时更改为0(无限)来禁用idleTimeout(默认情况下IIS将在活动20分钟后关闭应用程序)
3.禁用定期回收
默认情况下,关闭常规时间间隔(分钟)IIS会每29小时回收一次您的应用程序.
对于