2009-06-24 124 views
12

我在我的應用程序中有一個依賴注入容器的設置,我想在每次WCF服務請求進入時編寫容器都會效率低下。IIS託管(http)WCF服務的生命週期是什麼?

有人可以向我解釋一個HTTP/IIS託管的WCF服務,該服務的生命週期是什麼?如果我能弄明白這一點,我可以就容器的存儲位置,實例化,銷燬等做出明智的決定。

回答

23

如果您的InstanceContextModePerCall,則會爲每個傳入請求從頭開始創建服務類,然後在完成時處理它。

如果您InstanceContextModePerSession,服務類將被創建並用於服務一個給定客戶的會話的持續時間(或者直到「InactivityTimeout」遇到或發生錯誤)。

如果您InstanceContextMode(單),當第一個請求進來,只要請求接連不斷地爲沒有出現錯誤將留在內存中,只要沒有inactivityTimeout是服務類將被創建到達。

所以,你有它!當然,併發模式(PerSessionSingle服務)也將開始發揮作用,使事情只是一個稍微更「有趣」

+0

不錯!謝謝,正是我想要的答案。 – 2009-06-24 14:00:12

0

這取決於您的ServiceBehavour。 具體爲thisthis

1

正如你提到你試圖WCF服務實例化一個依賴注入容器整合,我只想說,我有一個非常積極的經驗,使用Castle WCF Integration Facility來做到這一點。

它特定於Castle Windsor依賴注入容器,但它是開放源代碼,您可以在裏面查看並理解所提供的一些挑戰和解決方案。