我在我的應用程序中有一個依賴注入容器的設置,我想在每次WCF服務請求進入時編寫容器都會效率低下。IIS託管(http)WCF服務的生命週期是什麼?
有人可以向我解釋一個HTTP/IIS託管的WCF服務,該服務的生命週期是什麼?如果我能弄明白這一點,我可以就容器的存儲位置,實例化,銷燬等做出明智的決定。
我在我的應用程序中有一個依賴注入容器的設置,我想在每次WCF服務請求進入時編寫容器都會效率低下。IIS託管(http)WCF服務的生命週期是什麼?
有人可以向我解釋一個HTTP/IIS託管的WCF服務,該服務的生命週期是什麼?如果我能弄明白這一點,我可以就容器的存儲位置,實例化,銷燬等做出明智的決定。
如果您的InstanceContextMode
爲PerCall,則會爲每個傳入請求從頭開始創建服務類,然後在完成時處理它。
如果您InstanceContextMode
是PerSession,服務類將被創建並用於服務一個給定客戶的會話的持續時間(或者直到「InactivityTimeout」遇到或發生錯誤)。
如果您InstanceContextMode
是單(單),當第一個請求進來,只要請求接連不斷地爲沒有出現錯誤將留在內存中,只要沒有inactivityTimeout是服務類將被創建到達。
所以,你有它!當然,併發模式(PerSession
和Single
服務)也將開始發揮作用,使事情只是一個稍微更「有趣」
正如你提到你試圖WCF服務實例化一個依賴注入容器整合,我只想說,我有一個非常積極的經驗,使用Castle WCF Integration Facility來做到這一點。
它特定於Castle Windsor依賴注入容器,但它是開放源代碼,您可以在裏面查看並理解所提供的一些挑戰和解決方案。
不錯!謝謝,正是我想要的答案。 – 2009-06-24 14:00:12