Asp.net
用於 ASP.NET Web 服務(預熱)的 IIS 7.5 應用程序初始化,無需重新映射請求
我正在嘗試使用 IIS 7.5 應用程序初始化擴展來為我的 Web 應用程序配置預熱過程。這是我正在採取的一種方法,以最大程度地減少由應用程序池回收引起的減速,這個問題在 Stack Overflow 上的其他問題中得到了很好的解釋。
我想要的是獲得應用程序初始化的好處,而無需在其他任何地方重新映射請求。
到目前為止我所做的
我按照基本案例的IIS 8 說明進行操作,效果很好!我創建了一個名為 app_starting.htm 的啟動頁面,並通過使用此程式碼,在應用程序初始化時顯示它:
<applicationInitialization remapManagedRequestsTo="app_starting.htm" skipManagedModules="true" > <add initializationPage="/" /> </applicationInitialization>為什麼這不好
我想使用初始化來加快對使用 ASP.NET MVC 編寫的基於 REST 的 Web 服務的請求。此 Web 服務是多個應用程序的後端。當他們向資源(即
/client/1/addresses)發出請求時,他們無法處理接收啟動頁面。我試過的
我刪除了該
remapManagedRequestsTo屬性。但是,現在當我在初始化期間請求資源時,我會收到 500 錯誤,直到初始化完成。之後,響應恢復正常。依賴此服務的應用程序也不會很好地響應 500 錯誤,因為初始化不應該是錯誤條件。我需要的
在不執行任何重新映射的情況下,我希望請求行為恢復正常。即使初始化正在進行中,對應用程序的其他請求也應該排隊等待直到初始化完成。
有什麼我想念的嗎?我能做到這一點嗎?
謝謝您的幫助!
我想我回答了我自己的問題。我刪除了該
skipManagedModules屬性並且它起作用了。這段程式碼完成了應用程序的初始化,並且在預熱期間,請求似乎在等待它完成後才被處理:<applicationInitialization> <add initializationPage="/" /> </applicationInitialization>我找不到任何文件說明為什麼它會以這種方式執行,也不真正理解這
skipManagedModules意味著什麼。如果有人可以進一步解釋這一點,我可以將解釋標記為答案。謝謝!