代码改变世界

让IIS 7 如同IIS 8 第一次请求不变慢

2013-11-19 19:17  时空印记  阅读(18007)  评论(5编辑  收藏  举报

     

       当我们把网站部署在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图标,此时我们就可以开始设定了:

image

Warm Up设定方式满简单的,主要针对Application Pool层级或是Web Site层级两者进行设定

1.Application Pool层级:只要有需要的Application Pool的Start Mode设定AlwaysRunning就可以

image

2.Web Site层级:选择你们要做Preload的Web Site。

image

选择好Web Site之后,记得下图红框地方要打勾,若是当网站初始化时间要很久话,可以再Splash Page定义初始化网页说明

说明网站正在初始化,让用户感觉比较友善

image

以上都设定好之后,进行测试一下。