在应用程序池回收后,如何预热我的asp.net mvc webapp?

我在IIS 8.0中运行ASP.NET MVC webapp。 在收到请求之前,我的应用程序需要预热。 当我们部署新代码时,我们已经有了一个自动预热应用程序的过程。 但是,我们看到定期应用程序池回收事件导致应用程序不被预热。

是否有检测应用程序池回收事件并执行脚本或代码的最佳做法?

    有几件事你可以做:

    1.应用程序初始化

    您可以使用IIS 8.0内置的应用程序初始化模块

    你可以在你的web.config有这样的东西

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

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

    您还可以将应用程序池的启动模式configuration为Always Running ,这意味着每次IIS重新启动时,都将确保立即启动应用程序池(如果从右键单击应用程序池,则Advanced Settings

    在这里输入图像描述

    Preload您的网站本身(右键单击该网站,然后Manage Site然后Advanced Settings

    在这里输入图像描述

    2.禁用空闲超时

    此外,您可以通过将应用程序池的Idle Time-out更改为0(无限)来禁用idleTimeout(默认情况下,IIS将在活动20分钟后closures应用程序)

    在这里输入图像描述

    3.禁用定期回收

    也默认closuresRegular Time Interval (minutes) IIS将每29小时回收您的应用程序。

    在这里输入图像描述

    对于