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

有没有办法让我检测客户端与我的服务断开连接?我只有机会知道某个客户端是否在try-catch方法上断开连接,这不是一个非常好的方法.我不想为每个连接我的服务的新客户端创建一个计时器,只是为了监控它的最后一个事务. 最佳答案 不,没有简单或优雅的方法来检测客户端断开连接.如果在客户端关闭或崩溃时服务收到“ClientTerminated”事件,那将是一个很好的环境.但是,此行为根本不适合基于消息的体系结构.

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

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

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

点赞