IIS 使用 應用程式初始化(Application Initialization)套件有效提升冷啟動和首頁載入速度

之前使用者說網站超過一段時間沒有使用會需要重新登入,經過測試大約是 20 分鐘左右,但是在我們內部測試機(使用 Docker 部屬)並不會發生。
並且網站還有一個問題,就是有時候開啟網站很慢,大約需要五秒鐘左右,但是也不是那麼常發生。一開始以為是因為設定在內網,無法連接到網際網路,所以需要等待使用 CDN 的資源請求 Timeout 才能連線,但把所有使用到 CDN 的 JS, CSS 替換後還是一樣,但不是每次都會出現這個問題。

經過反覆研究後發現,是只有站台啟動後第一次開啟網站時一定會發生,再來就是超過 20 分鐘沒有連接,IIS 自動關閉後再次使用網站時會需要等待比較久。這是因為 IIS 在連接時才會啟動,且在初始化網站、資料庫連接會需要比較長的時間,並且 IIS 預設在 20 分鐘沒有處理任何請求時,會自動停止應用程式,釋放資源。

想要讓他不自動停止,並且在啟動站台時自動初始化應用程式,可以透過安裝 應用程式初始化(Application Initialization)套件來達成。

在 Windows Server 的控制台中點選 > 開啟或關閉 Windows 功能

會自動跳轉到「伺服器管理員」中的「新增角色及功能精靈」,點選「下一步」三次

在「伺服器角色」頁籤中點選 網頁伺服器(IIS) > 網頁伺服器 > 應用程式開發 > 應用程式初始化,點選下一步

在「確認」頁籤中點選「安裝」

等待安裝完成後點選「關閉」

開啟「IIS 管理員」,在「應用程式集區」中找到要設定的站台,確保「受控管線模式」設定為「整合式」

點選「進階設定」將「啟動模式」設定為「AlwaysRunning」

最後點選要設定的站台,點選「進階設定」將「預先載入已啟用」設定為「True」,點選「確定」




補充:筆者有次更新發現站台的檔案怎樣都是「此資料夾已被開啟」,無法替換檔案,將站台停止、甚至將電腦重啟都是一樣,最後發現先將「預先載入已啟用」設定為「False」即可,替換完檔案後再把它設為 True,但是不是每次都會發生。

留言