如何处理WCF客户端断开连接?
我尝试使用回调,但似乎仅在客户端使用“Disconnect”按钮明确断开连接时才有效。
我希望在客户端手动断开连接或客户端进程崩溃时,我的服务器能够收到通知。
使用OperationContext.Current.Channel.Faulted和OperationContext.Current.Channel.Closed事件。
当客户端由于任何原因断开连接时,这些事件将被触发。
if (HttpContext.Current.Response.IsClientConnected == false)
{
..}
它可以帮助你
我认为,如果客户端以异常的方式断开连接,就没有办法确保服务器会意识到。这就像HTTP一样。如果我们强制关闭浏览器,浏览器将不会向服务器发送任何信息。
这是我们有会话超时的原因之一。如果客户端做错了什么(例如操作时间太长)或者在没有通知服务器的情况下断开连接,我们需要断开客户端并清理服务器端正在使用的所有内容。