Asp.net

如何防止 IIS 編譯網站?

  • March 2, 2010

我有一個 ASP .NET Web 應用程序,它在後端與 ASMX Web 服務通信。我們統計了一下,初始請求的平均等待時間是 20s。我想知道是否有一種方法可以將 Web 服務發送到預編譯的伺服器,從而消除編譯的需要。

我們還注意到 IIS 傾向於回收其工作執行緒,這也會導致編譯。該過程本身並不經常被訪問,但是當它被訪問時它需要更快。

有什麼想法嗎?

提前致謝

更新:感謝所有的建議,我已經嘗試了其中的一些,這就是我發現的。回收時間關閉/修補是危險的,因為我不希望執行緒只是無所事事。經過進一步檢查,該站點正在預編譯,所以我的問題是為什麼 Web 服務有一個初始啟動時間?

現在:傾向於下面的熱身腳本建議

更新:正在從另一台機器上的 Web 伺服器訪問該服務。我們只看到初始請求存在問題。

另一種方法是編寫一個“熱身腳本”,它只是從您的應用程序中執行一個頁面。這將使伺服器為您啟動,下一個人將獲得快速打擊。您還可以設置一個計劃的程序來偶爾執行該腳本(例如,如果您計劃執行緒池在凌晨 4 點回收,則安排預熱腳本在凌晨 4:01 執行)

您應該將預編譯作為建構/部署腳本的一部分。

以程式方式請求每個 Web 資源並觸發編譯的部署後活動對我來說似乎很愚蠢。

Thomas 的回答給出了編譯器,MSDN 上還有一個指南,如何:預編譯 ASP.NET 網站

如果您使用的是 MSBuild,請使用AspNetCompiler Task

(我可能會發表評論,但我還不允許……沒有足夠的果汁)

引用自:https://stackoverflow.com/questions/2359120