IIS8以下解决方案:
当我们把网站部署在IIS7或IIS6S的时候,每当IIS或是Application Pool重启后,第一次请求网站反应总是很慢,原因大家都知道(不知道可以参考这个动画说明ASP.NET网页第一个Request会比较慢的原因)。所以每次网站更新都会给第一个用户带来不好的用户体验,因此之前大家得通过撰写仿真模拟访问动作或预编译来解决此问题。但自从Windows 2012出来之后,这部分Application Initialization功能已经有内含在IIS8之中,可以直接进行设定就可以。不过微软也发布了针对针对前期的IIS单独模块:Application Initialization Module for IIS 7.5 。
- 支持的操作系统有 Windows 7、Windows Vista、Windows Vista SP1、Windows XP SP2+、Windows Server 2003 SP1+、Windows Server 2008、Windows Server 2008 R2。
安装完毕后要求重启。有人说模块安装完毕后,在IIS里能看到关于此模块图标,不过我是没见着。为解决此问题,得再安装Application Initialization for UI,才有办法让IIS出现UI可以进行设定。安装完毕后,在IIS控制置模块中会出现一个Application Initialization图标,此时我们就可以开始设定了:
Warm Up设定方式满简单的,主要针对Application Pool层级或是Web Site层级两者进行设定
1.Application Pool层级:只要有需要的Application Pool的Start Mode设定AlwaysRunning就可以
2.Web Site层级:选择你们要做Preload的Web Site。
选择好Web Site之后,记得下图红框地方要打勾,若是当网站初始化时间要很久话,可以再Splash Page定义初始化网页说明
说明网站正在初始化,让用户感觉比较友善
以上都设定好之后,进行测试一下。
IIS8或以上(Win8/Win10/Window Server2012) [注意顺序]
1.选中站点,点选右方高级设置--预加载已启用,设为True
2.应用程序池--高级设置--启动模式,设为AlwaysRunning
================================================
命令行工具:
//设置网站预加载
appcmd set apppool /apppool.name:ZoomlaCMS86 /startMode:AlwaysRunning
APPCMD set SITE ZoomlaCMS86 /applicationDefaults.preload Enabled:true
================================================