解决iis自动回收导致第一次访问慢和定时任务暂停的问题

IIS会定时回收,类似于自动重新启动网站。我们都有知道网站启动后第一次访问往往会比较慢,网站启动后没有访问,过段时间iis会回收,请求再来的时候会和网站刚刚启动的时候一样,需要等待一段时间,很不舒服,这个就是因为iis回收导致的。

定时回收除了会出现上面的情况外,还会将我们托管的后台任务回收掉,导致我们的后台任务终止执行,直到进来一个请求(网站内任意地址)任务启动,那么如果请求很久没来,这个任务将无法被启动,错过任务应该执行的档口。虽然我们可以通过调整自动回收的时间,甚至设置他不自动回收,但这样始终不是最好的解决方案。

我所知道的比较好的解决方案是通过配置iis来实现预加载,即在资源被回收的情况下,通过一个链接来唤醒自身,这样首次访问的时候不会觉得卡顿,并且我们被回收掉的定时任务又会重新的启动起来,一举多得,具体的配置方法如下:

1、设置网站的启用预加载:

2、编辑配置

3、设置应用程序池 启动模式为:AlwaysRunning

配置完我们就可以测试下效果,如果有任何问题,请留言讨论。