双工WCF捕获客户端断开连接事件

时间:2018-09-09 08:48:22

标签: c# .net wcf

我已经用Duplex WCF开发了一个小型的客户端/服务器应用程序,但是在尝试检测客户端是否失去与服务的连接时遇到了问题。

在服务端,要检测“死”客户端,我只需捕获回调:如果失败,则从列表中删除该客户端。

在客户端,如何检测客户端是否已与服务器断开连接(IE客户端丢失网络)?

我尝试过

((ICommunicationObject)m_InstContext).Faulted += new EventHandler(ConnectionCrashed);
((ICommunicationObject)m_InstContext).Closed += new EventHandler(ConnectionCrashed);

但是,它似乎仅在client =>服务调用上触发,而在回调通道出现故障时不会触发。

我的客户端软件对服务进行了初始调用,然后仅等待服务器回调。我也添加了可靠的会话,但是似乎也无法捕获失败的保持活动。

还有其他解决方案来检查客户端的回调通道是否仍处于活动状态吗?

谢谢

1 个答案:

答案 0 :(得分:0)

已解决:我需要在服务本身而不是InstanceContext上检查Faulted / Closed