[IIS] 如何解決網站第一個請求 Request 特別慢 ?

12月 18, 2018.NET, IISNo comments

問題 相信大家都有類似的經驗,在寫完的 Code 佈署到 IIS 開好網頁要準備要進入網站要測試時,網站的第一個請求總是特別慢,尤其是開發已久的程式要在 Production 驗證時心情總是特別緊張,這等待的時間更是讓人很煎熬(不知道會不會爆炸 XD),如何加速網站第一個 Request 呢 ? 過去待過的公司會在佈署完後透過 Jenkins 去打 Server 來 "喚醒" 它,在此簡單記錄一下如何透過 IIS 設定加速網站第一個 Request 的過程

處理方式 IIS 8.0 開始提供 網站預先啟動功能 (Preload),主要是透過 Application Initialization模組改善了網站第一位使用者等待網站初始化動作過久的問題,讓 IIS 啟動網站時先進行 Application 的初始化動作,加快 Response 回應時間,設定方式如下

安裝 Application Initialization feature 如果要啟用的話需要先檢查是否有安裝 Application Initialization feature,檢查方式如下

  1. 開啟控制台 > 程式集 > 開啟或關閉 Windows 功能

  2. Internal Information Service > WWW 服務 > 應用程式開發功能

  3. 應用程式初始化選項打勾

設定 IIS

  1. 開啟要設定的 Application 應用程式,點選 進階設定

  2. 可以看到 預先載入已啟用 功能 設定為 True

Note : 下方說明可以看到,preloadEnable 為 True 時,就會啟用應用程式的預先載入功能

  1. 接下來到應用程式集區

  2. 點選要設定的 Application Pool,選擇 進階設定

  3. 啟用模式原本是 OnDemand,選擇 AlwaysRunning,按下確定

Note : 下方說明可以看到,[startMode] 設定應用程式集區要以 隨選 或是 永遠執行 模式執行

如果是IIS 7.5的話,需要另外下載 Application Warming up 模組 設定方式也是類似上述步驟,詳細可以參考 Michelle哥 Blog 詳細說明 ASP.NET 程式中的背景工作 (1)

打完收工,大功告成 !

參考 IIS 8.0 Application Initialization ASP.NET開發人員不可不知的 IIS iis8-preloaded

Last updated