我使用IIS 7.5託管的測試WCF Web服務對響應一段時間不活動(即每天的第一個呼叫)後發出的呼叫的響應一直很慢。即使安裝了應用程序初始化模塊,第一個webservice響應也很慢
通過研究此主題,我發現在使用IIS時(例如see here),通常會遇到「應用程序熱身」問題。
我已經採取了建議,試圖緩解這個問題通常的步驟:
- 安裝了Application Initialization Module。
- 禁用應用程序池空閒超時和正常回收時間間隔(即將它們設置爲'0')。
- 編輯
applicationhost.config
文件,使autoStart=True
和startMode="alwaysRunning"
爲必要的應用程序池,preloadEnabled="true"
爲我的應用程序。
使用這些設置,我希望應用程序池在IIS啓動時立即啓動工作進程,並在現有的進程退出時啓動新的工作進程。另外,我希望應用程序在工作進程中加載。
但是,對於每天的第一個呼叫,日誌顯示客戶端撥打電話和接收呼叫的網絡服務之間的時間差可能高達10秒。後續呼叫通常在2秒鐘內完成處理。
奇怪的是,長響應時間是而不是通過在iisreset
命令之後撥打電話轉載。我希望這樣一個嚴厲的操作會使web服務處於類似的「冷」狀態,但是這似乎並不是這種情況。
我想知道:
- 什麼仍可能導致應用程序中的「熱身」延遲?
- 跟隨
iisreset
以及長時間不活動狀態的web服務狀態有什麼不同? - 我是否應該使用「心跳」解決方案來定期ping服務以保持活躍狀態?
在此先感謝您的任何提示或見解。
謝謝您的迴應,並獲取相關信息。 我的應用程序在資源上很輕鬆;它的工作是簡單地查詢第三方Web服務,因此我不認爲在這種情況下初始化資源的方法會有所幫助。 正如我在我的文章中提到的,我試圖將常規時間間隔設置爲'0',但問題仍然存在。 最後,我不得不求助於一個「心跳」的應用程序,以保持網絡服務的活力,這並不理想,但它的確能完成這項工作。 – vertumnus83