這篇文章主要為大家詳細介紹了IIS8上ASP.NET第一次訪問慢的解決方案,具有一定的參考價值,感興趣的小夥伴們可以參考一下
本篇經驗以IIS8,Windows Server 2012R2做為案例。
IIS8 運行在Windows Server 2012 and Windows 8 版本以上的平台上。
IIS中應用程式集區和網站是單獨存在的,但是網站運行必須建立在對應的應用程式集區啟動的前提下。
預設情況下,應用程式集區在不活動情況下(無請求操作),一段時間後,將被IIS自動回收掉。
IIS8 內建應用程式初始化工具包,IIS7.5要搜尋獨立安裝包進行安裝,低於7.5的暫時不支援IIS自動初始化。
本篇經驗中的方法能解決ASP.Net第一次訪問慢,間隔一段時間後,又訪問慢的問題。
方法/步驟
安裝IIS應用程式初始化功能,如所示:
編輯網站對應應用程式集區啟動模式,操作路徑:應用程式集區 -> 網站對應程式池 -> 右鍵,進階設定 ->選擇,啟動模式AlwaysRunning,如所示:
開啟對應網站預先載入,操作路徑:網站 -> 對應網站 -> 右鍵,進階設定 ->選擇,預先載入已啟用 True,如所示:
設定配置編輯器,編寫預設預先載入請求,開啟配置編輯器,如所示:
在左上方配置節點選擇system.webServer/applicationInitialization,其他配置如紅圈中,如所示:
在集合中添加一個初始化請求地址(用於IIS初始化預設請求地址),添加完成後,點擊配置介面右側的應用按鈕,並重啟應用程式集區和網站,如所示:
總結:
1、原理說明:IIS應用初始化會在網站第一次建立後或者對應網站的應用程式集區回收後,自動開啟新程式池,並啟動網站初始化,類比一次正常請求,使網站一直處於線上狀態。
(此流程可以藉助第三方工具或者服務類比網站請求達到相同目的)
2、配置說明:
(1)、啟用應用程式集區(AlwaysRunning):保證應用程式集區在第一次建立或者被回收後,能自動再次重啟運行。
(2)、啟用網站程式預先載入(true):保證程式池在啟動過後,網站能響應預先載入動作。
(3)、配置網站預設預先載入路徑:保證程式在程式池啟動後,網站預先載入過程中,能快速編譯器並進駐記憶體,保證請求快速響應。