IIS7.5 配置应用程序初始化功能

时间:2023-03-09 13:36:29
IIS7.5 配置应用程序初始化功能

IIS进程回收后,第一次访问会超级慢,这对于用户是不能接受的,怎么解决这个问题?

我们不能设置IIS不回收进程,因为这样可能会导致IIS内存泄漏。有效的方法时,尽量在业务空闲时间回收进程,回收后立刻预加载程序,尽量不让客户命中进程回收的第一次访问。

IIS应用程序安装、配置如下:

一、安装IIS应用程序初始化功能

从 IIS 8.0 默认开始引入了 Application Initialization 功能,该功能模块会主动去执行WEB应用程序的初始化任务,并且当正在执行时为用户提供一个友好的初始化界面直到任务执行结束。

对于IIS 7.5 来说可以安装扩展包以开启该功能,扩展包下载地址:Application Initialization Module for IIS 7.5

二、配置IIS应用程序初始化功能

1、设置应用程序池的启动模式

用记事本打开%WINDIR%\system32\inetsrv\config文件夹中的 applicationHost.config 文件。

在applicationPools配置节下找到名为"ASP.NET v4.0"的应用池记录。

修改这个应用池记录让这个应用池是always running的状态。

startMode="AlwaysRunning" 
<add name="ASP.NET v4.0" startMode="AlwaysRunning" managedRuntimeVersion="v4.0" />

2、启用站点的预加载

preloadEnabled="true"
applicationHost.config 文件中sites节点下,设置站点启用预加载。当应用程序池重启后,IIS会新建一个请求访问站点,达到初始化的效果。
 <application path="/K3Cloud" applicationPool="K3Cloud" preloadEnabled="true">

3、设置站点的初始化页面

在站点下,找到web.config文件,在 <system.webServer>节点,加下面配置

     <applicationInitialization remapManagedRequestsTo="splash.html" skipManagedModules="false" doAppInitAfterRestart="true">
<add initializationPage="/Initialization.aspx" />
</applicationInitialization>