我們想要預熱託管在IIS 7.5服務器上的ASP.NET MVC應用程序。以前在http://forums.iis.net/t/1176740.aspx上可用的預熱模塊自某時以來已被刪除。如何預熱IIS 7.5上的ASP.NET MVC應用程序?
每當IIS或ASP.NET工作進程因任何原因重新啓動時,都應該預熱應用程序。在預熱期間,IIS應返回一些HTTP狀態代碼,表示其預熱狀態或無法爲任何客戶端服務。
會創建一個可執行文件,通過HttpRequests瀏覽網站中的必要頁面是個好主意嗎?可執行文件可以從IProcessHostPreloadClient實現中觸發。是否可以配置IIS,以便它只接受來自本地主機的請求,一旦可執行文件完成,它可以切換到所有客戶端 - 但該切換不應觸發IIS重啓(顯然)。
是否可以使用Visual Studio 2010 - Web性能測試來預熱應用程序而不是創建手動可執行文件?任何其他的選擇? PS:應用程序使用表單身份驗證並使用會話 - 因此維護狀態Cookie和其他Cookie非常重要。
更新1 - 我們在我們的應用程序中使用.NET Framework 4.0和Entity Framework(數據庫優先)。第一次命中EF查詢很慢。熱身背後的原因是讓這些第一次擊中。我們已經在大多數地方使用編譯查詢,並且已經爲EF實現了預編譯的視圖。模型和應用程序的大小非常大且複雜。熱身需要遍歷許多頁面,以確保在任何最終用戶訪問應用程序之前至少執行一次編譯和非編譯的EF查詢。
相關:http://stackoverflow.com/questions/13250679/how-to-warm-up-entity-framework-when-does-it-get-cold –
嘗試檢查[我的解決方案](http:// stackoverflow.com/questions/15348621/iis-7-5-application-initialization-for-asp-net-web-service-warmup-without-rema/15367638?noredirect=1#comment33723748_15367638)。它不會返回一個特殊的狀態碼,而是等待熱身響應請求。 – Jason