IIS 6 託管環境中 WCF 應用程式生命週期說明

IIS 6 託管環境中 WCF 應用程式生命週期說明

大家好,感謝您的閱讀,

我有一個延遲問題,即自上次調用後經過一段確定時間後首次調用時,我的應用程式需要很長時間才能啟動。 Web 應用程式是一個 WCF 服務,我們討論的是在實際處理開始之前大約 18 秒的延遲。現在,我相信我知道如何減少這種延遲,所以這不是我的問題(無論如何,這更像是 stackoverflow 交易)

我的問題是,任何人都可以向我解釋為什麼儘管我禁用工作進程關閉,並且工作進程回收應用程式在一段不確定的不活動時間後仍然「停止」?

為了理解這一點,我需要更多地了解 IIS 中託管的 WCF 服務的內部工作原理。我完全希望對此有一個直接的答案。

非常感謝您提供的任何幫助,DC

答案1

如果工作進程的「回收和效能」標籤上的所有內容均未選中,則 IIS 不應終止這些進程。是否有與進程「結束」時間相對應的事件日誌條目?在我看來,WCF 應用程式可能會崩潰。 WCF 不會像標準 .NET 應用程式那樣將異常記錄到事件日誌中,因此如果您不編寫自己的日誌,則可能需要開啟WCF 追蹤看看是否這就是問題所在。

同時,解決您的問題的快速醜陋解決方案可能是在WCF 服務中創建某種廉價的測試或只讀事務,然後配置一個監視應用程式或腳本每隔X 秒輪詢一次,以保持工作進程與程式碼保持活動狀態預 JIT。

答案2

我相信這個問題與 WCF 無關,錯誤在於 nHibernate 整理它的對應。我透過編譯 nHibernate 映射檔解決了這個問題,這樣 nHibernate 就不必這樣做了。

相關內容