2011-02-14 171 views
3

我是新来的WCF并试图完成的会话管理方面的几件事情:WCF会话管理

  1. 我想,当一个新的会话被打开/创建到服务器上获取的事件。

  2. 我希望能够关闭所有打开的会话,或者获得打开的会话列表并关闭特定的会话(当然在服务器上)。

我该怎么做呢?谷歌已经出乎意料地无益...

+0

这些要求不满足于“只是”WCF - 你需要一些管理工具,比如AppFabric - 查看[这篇博文](http://weblogs.asp.net/cibrax/archive/2010/ 02/01/monitoring-your-wcf-services-with-appfabric.aspx)关于主题 – 2011-02-14 22:11:16

回答

1

答案将是很多“它取决于”。一些绑定不是会话感知的。像BasicHttpBinding这样的东西本身并不会完成会话,但是如果启用ASP.net compatability mode,则可以使ASP.net的会话管理工作。然后,您可以在global.asax中使用Session_Start和Session_End在会话打开或关闭时执行您想要的操作。

你应该看看你正在使用的绑定,看看它是否有某种内置的会话支持,因为它们中的一些可以。

如果您正在进行身份验证,您还可以通过将请求映射到经过身份验证的用户并将会话记录存储在数据库中来模拟会话管理系统。

我会说在任何情况下,我不确定什么“关闭”会话会给你带来什么。除非你还以某种方式锁定用户,否则下一个请求将立即开始一个新的会话,如果前一个结束。也许如果你解释你想完成的目标(以及为什么),我们可以提供进一步的帮助。