我在IIS 8.0中运行ASP.NET MVC webapp。 在收到请求之前,我的应用程序需要预热。 当我们部署新代码时,我们已经有了一个自动预热应用程序的过程。 但是,我们看到定期应用程序池回收事件导致应用程序不被预热。
是否有检测应用程序池回收事件并执行脚本或代码的最佳做法?
有几件事你可以做:
您可以使用IIS 8.0内置的应用程序初始化模块
你可以在你的web.config
有这样的东西
<applicationInitialization doAppInitAfterRestart="true" > <add initializationPage="/" /> </applicationInitialization>
每当您的应用程序自动启动时,这会向您的应用程序的根目录( initializationPage="/"
)发送一个请求。
您还可以将应用程序池的启动模式configuration为Always Running
,这意味着每次IIS重新启动时,都将确保立即启动应用程序池(如果从右键单击应用程序池,则Advanced Settings
和Preload
您的网站本身(右键单击该网站,然后Manage Site
然后Advanced Settings
此外,您可以通过将应用程序池的Idle Time-out
更改为0(无限)来禁用idleTimeout(默认情况下,IIS将在活动20分钟后closures应用程序)
也默认closuresRegular Time Interval (minutes)
IIS将每29小时回收您的应用程序。
对于