本篇經驗以IIS8,Windows Server 2012R2做為案例。
IIS8 運行在 Windows Server 2012 and Windows 8 版本以上的平台上。
IIS中應用程序池和網站是單獨存在的,但是網站運行必須建立在對應的應用程序池啟動的前提下。
默認情況下,應用程序池在不活動情況下(無請求操作),一段時間后,將被IIS自動回收掉。
IIS8 自帶應用程序初始化工具包,IIS7.5要搜索獨立安裝包進行安裝,低於7.5的暫時不支持IIS自動初始化。
本篇經驗中的方法能解決ASP.Net第一次訪問慢,間隔一段時間后,又訪問慢的問題。
1、安裝IIS應用程序初始化功能,如下圖所示:

2、編輯網站對應應用程序池啟動模式,操作路徑:應用程序池 -> 網站對應程序池 -> 右鍵,高級設置 ->選擇,啟動模式 AlwaysRunning,如下圖所示:

3、開啟對應網站預加載,操作路徑:網站 -> 對應網站 -> 右鍵,高級設置 ->選擇,預加載已啟用 True,如下圖所示:

4、設置配置編輯器,編寫默認預加載請求,打開配置編輯器,如下圖所示:

5、在左上角配置節點選擇system.webServer/applicationInitialization,其他配置如紅圈中,如下圖所示:

6、在集合中添加一個初始化請求地址(用於IIS初始化默認請求地址),添加完成后,點擊配置界面右側的應用按鈕,並重啟應用程序池和網站,如下圖所示:

7、總結:
(1)原理說明:
IIS應用初始化會在網站第一次創建后或者對應網站的應用程序池回收后,自動開啟新程序池,並啟動網站初始化,模擬一次正常請求,使網站一直處於在線狀態。(此流程可以借助第三方工具或者服務模擬網站請求達到相同目的)
(2)配置說明:
(a)、啟用應用程序池(AlwaysRunning):保證應用程序池在第一次創建或者被回收后,能自動再次重啟運行。
(b)、啟用網站程序預加載(true):保證程序池在啟動過后,網站能響應預加載動作。
(c)、配置網站默認預加載路徑:保證程序在程序池啟動后,網站預加載過程中,能快速編譯程序並進駐內存,保證請求快速響應。
