WCF全双工句柄客户端断开连接

时间:2010-07-28 02:43:29

标签: c# wcf

有没有办法检测客户端与我的服务断开连接?我只有机会知道某个客户端是否在try-catch方法上断开连接,这不是一个非常好的方法。我不想为每个连接我的服务的新客户端创建一个计时器,只是为了监控它的最后一个事务。

1 个答案:

答案 0 :(得分:2)

不,没有简单或优雅的方法来检测客户端断开连接。如果在客户端关闭或崩溃时服务收到“ClientTerminated”事件,那将是一个很好的环境。但是,此行为根本不适合基于消息的体系结构。

一个不太优雅的解决方案是使用回调方法定期ping客户端,并查看此调用是否超时。

或者,如果您正在使用PerSession实例化,则可以将inactivityTimeout设置为较短的值(例如,一分钟而不是默认值10),并在客户端使用计时器定期调用空方法服务器

有关类似的讨论,请参阅this question