Asp.net-Mvc
第一個 Web API 會話請求很慢
我正在編寫一個託管在 IIS7 上的 ASP.NET Web API 應用程序(沒有特殊配置)。
我的問題是,對於每個第一個請求(在新機器/新瀏覽器上/一段時間後……)都有很長的延遲 - 即使是返回常量的請求!
我已經閱讀了有關“熱身”腳本的資訊,但這不是這裡的問題。似乎 Web 伺服器正在嘗試創建會話,並且需要很長時間。有什麼建議?
編輯
我認為延遲是由每個新會話的工作程序創建引起的。現在的問題是為什麼它這麼慢,為什麼 Web 伺服器不重用活的工作程序來服務請求?
我已將應用程序池配置為將工作程序限制為 5 個且沒有超時(設置為 0)。這導致前五個會話在第一次請求時變慢(我可以忍受),現在工作程序還活著。但令人驚訝的是,請求時不時地又變慢了!
如果您使用的是 Windows Server 2008 R2,您可以
configure the Auto-Start feature使用應用程序池。同樣在應用程序池的屬性中,您應該禁止它定期回收。請記住,雖然這會限制速度,但應用程序池仍然可以被 IIS 回收。使用自動啟動功能,它將再次自動載入到記憶體中,但您的程式碼Application_Start將在下一次請求時執行。所以你仍然可以觀察到一些緩慢。