讓 IIS 網站保持運作狀態

  • 7900
  • 0
  • IIS
  • 2017-08-08

使用 asp.net 開發網站時.都會發現發佈到 IIS 上後,總是第一次進入網站時會很慢,載入後繼續瀏覽頁面就又很快.但是過一陣子之後,再次連線可能又變得很慢.

這是因為 IIS 預設 20 分鐘沒有 Request 進來,就會把網站應用程式停止,釋放資源不佔記憶體,降低 IIS 主機的資源負載.直到下一個 Request 連進來時,又再自動載入相關的 DLL 啟動網站.

這尤其在一 IIS 上架設了好幾個網站的 Hosting 類型主機服務,能夠很有效的將主機資源動態分配到正在被瀏覽的網站上.

但是這樣在使用者體驗上感覺就很糟 (雖然只有第一個進入系統的衰鬼?) .或者是當你網站開發好,要去 Demo 給客戶看時跑很久就很尷尬 (那我 Demo 前自己先連一次不就好了?嗯...)

其實我們可以透過 IIS 的 Application Initialization 模組功能,解決掉這個第一次進系統要跑很久的問題

要達到這樣的設定主要有 3 個部分需要處理 (這邊以 IIS 8.0 以上版本為例,較舊版本可搜尋 "IIS Warm Up" )

  1. 安裝 IIS 的「應用程式初始化 (Application Initialization)」模組
  2. 網站的進階設定「預先載入已啟用」設為 True
  3. 網站使用的應用程式集區的進階設定「啟動模式」設為 AlwaysRunning

1. 安裝 IIS 的「應用程式初始化 (Application Initialization)」模組

使用新增角色及功能精靈,將 IIS 的應用程式初始化 (Application Initialization) 模組安裝起來.

這項功能在以往 IIS 7.5 (含) 以前的版本,叫做 Warm Up,且需要另外下載安裝.現在在 IIS 8.5 開始,已改名為「應用程式初始化 (Application Initialzation)」.

2. 網站的進階設定「預先載入已啟用」設為 True

至 IIS 網站的進階設定,將「預先載入已啟用」設為 True.

3. 網站使用的應用程式集區的進階設定「啟動模式」設為 AlwaysRunning

至 IIS 網站使用的應用程式集區的進階設定,將「啟動模式」設為 AlwaysRunning.

透過上述設定即可解決第一個進入系統的人需要等很久的問題了.

相關連結