【发布时间】:2011-09-01 13:48:24
【问题描述】:
我试图让 WCF 服务知道客户端何时断开连接。
阅读本文wcf notification on disconnect 后,我设法让一个测试项目工作。
客户端和服务器保持打开状态,直到我关闭客户端,然后 OperationContext.Current.Channel.Closed 事件似乎在下一行中的超时到期后触发。
<reliableSession enabled="true" ordered="true" inactivityTimeout="00:01:00" />
在测试它按我想要的那样工作之后,我尝试将它集成到我拥有的一个更大的项目中。
这似乎表现不同,即使客户端仍处于打开状态,OperationContext.Current.Channel.Closed 甚至会在配置 <reliableSession ordered="true" inactivityTimeout="00:01:00" /> 中指定的时间之后触发。
我注意到的不同之处在于我无法在配置中指定 enabled="true" 属性。第二个项目也使用 WSDualHTTPBinding,而第一个项目使用 WSHTTPBinding。
我的问题是为什么第二个项目会以这种方式表现,我怎样才能让它表现得像第一个?
如果您需要发布任何代码文件或配置,请告诉我,我会直接提供。
亲切的问候
灰
【问题讨论】:
-
客户端运行的平台是什么?