解决IIS进程回收后第一次访问慢的问题

时间:2022-10-04 08:16:17

IIS 有一种机制,默认会在IIS空闲一定时间段后,将应用程序池进行回收,这个时间段在IIS6中默认是20分钟,在IIS7中默认是1740分钟。两个配置都不合理,都会导致当应用程序池被回收后,第一次访问网站的时候速度很慢。如果一直不回收应用程序池,会导致占用内存过大。

做SharePoint的人都知道,站点每天访问第一次登录的人都很慢。也是这个IIS回收机制的问题。
我们的希望是每天凌晨进行应用程序池回收,并同时进行第一次访问,这样每天工作时间访问的时候速度都是很快的。
具体做法是:
1. 在IIS中配置,应用程序池的回收时间,固定为每天都0:00:00进行;
2. 在Windows中制作一个计划任务,执行一个"activateWebSite.bat"批处理命令,固定为每天的03:00:00进行;

"activateWebSite.bat" 批处理命令的内容如下:

@echo off

@echo  正在关掉所有的IE进程(需要设置默认浏览器是IE)
taskkill /im iexplore.exe /f /t @echo 正在访问 http://localhost
start "C:\Program Files\Internet Explorer\iexplore.exe"  http://localhost  @echo 正在通过ping来延迟80秒钟,以方便IE打开页面
ping 127.0.0.1 -n 80 @echo 正在关掉所有的IE进程(需要设置默认浏览器是IE)
taskkill /im iexplore.exe /f /t @echo 正在访问 http://localhost
start "C:\Program Files\Internet Explorer\iexplore.exe"  http://localhost  @echo 正在通过ping来延迟80秒钟,以方便IE打开页面
ping 127.0.0.1 -n 80 @echo 正在关掉所有的IE进程(需要设置默认浏览器是IE)
taskkill /im iexplore.exe /f /t 

添加的任务计划程序:

解决IIS进程回收后第一次访问慢的问题