我是新來的WCF並試圖完成的會話管理方面的幾件事情:WCF會話管理
我想,當一個新的會話被打開/創建到服務器上獲取的事件。
我希望能夠關閉所有打開的會話,或者獲得打開的會話列表並關閉特定的會話(當然在服務器上)。
我該怎麼做呢?谷歌已經出乎意料地無益...
我是新來的WCF並試圖完成的會話管理方面的幾件事情:WCF會話管理
我想,當一個新的會話被打開/創建到服務器上獲取的事件。
我希望能夠關閉所有打開的會話,或者獲得打開的會話列表並關閉特定的會話(當然在服務器上)。
我該怎麼做呢?谷歌已經出乎意料地無益...
答案將是很多「它取決於」。一些綁定不是會話感知的。像BasicHttpBinding這樣的東西本身並不會完成會話,但是如果啓用ASP.net compatability mode,則可以使ASP.net的會話管理工作。然後,您可以在global.asax中使用Session_Start和Session_End在會話打開或關閉時執行您想要的操作。
你應該看看你正在使用的綁定,看看它是否有某種內置的會話支持,因爲它們中的一些可以。
如果您正在進行身份驗證,您還可以通過將請求映射到經過身份驗證的用戶並將會話記錄存儲在數據庫中來模擬會話管理系統。
我會說在任何情況下,我不確定什麼「關閉」會話會給你帶來什麼。除非你還以某種方式鎖定用戶,否則下一個請求將立即開始一個新的會話,如果前一個結束。也許如果你解釋你想完成的目標(以及爲什麼),我們可以提供進一步的幫助。
我同意Tridus對此的回答。您可以通過啓用ASP.NET兼容模式來使用會話與WCF服務。
檢查http://msdn.microsoft.com/en-us/library/aa702542.aspx初始閱讀。請記住 - 服務原則上應該是無國籍的。
這些要求不滿足於「只是」WCF - 你需要一些管理工具,比如AppFabric - 查看[這篇博文](http://weblogs.asp.net/cibrax/archive/2010/ 02/01/monitoring-your-wcf-services-with-appfabric.aspx)關於主題 – 2011-02-14 22:11:16