如何在服务中检测客户端回调通道故障

时间:2012-02-18 03:08:27

标签: c# wcf duplex wsdualhttpbinding

我在wsDualHttpBinding上使用双工通信。

每个登录服务器的客户端,GUID和回调通道都会构建并保存在字典中。 (一种非常标准的方法)

我需要一种方法让服务检测到客户端意外关闭的时间。我已经尝试在服务器端为故障处理程序挂钩一个函数,但它永远不会被调用。

我在猜测,因为它在服务器端是半开放的,因为它在wsDualtHttpBinding中使用不同的回调和客户端通道。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

我认为你不会得到解决方案。如果您不需要WS *兼容性,您可以想象创建一个自定义绑定和通道,在客户端和客户端之间发送心跳包。服务器定期,类似于HTTP Long polling。当错过一定数量的心跳(比如2)时,假设另一端断开连接。否则,服务器无法知道客户端意外断开连接,直到超时为止。

相关问题