我已经使用Duplex WCF开发了一个小型客户端/服务器应用程序,但是我遇到了一个问题,试图检测客户端是否已丢失与服务的连接。
在服务方面,为了检测“死”客户端,我只是捕获回调:如果失败,那么我从列表中删除客户端。
在客户端,如何检测客户端是否已从服务器断开连接(IE客户端丢失网络)?
我试过了
((ICommunicationObject)m_InstContext).Faulted += new EventHandler(ConnectionCrashed);
((ICommunicationObject)m_InstContext).Closed += new EventHandler(ConnectionCrashed);
但似乎它只在客户端=>服务调用时触发,而不是在回调通道出现故障。
我的客户端软件初始调用该服务,然后等待服务器回调。我也添加了可靠的会话,但似乎也不可能抓住失败的保持活动。
有没有其他解决方案可以检查回调通道是否仍然在客户端处于活动状态?
谢谢
解决:我需要检查服务本身的Faulted / Closed而不是InstanceContext