我是新来的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