【发布时间】:2016-02-28 23:18:15
【问题描述】:
我正在使用wsHttpBinding 和InstanceContextMode.PerCall。在服务器端,我需要检测客户端是否正确接收到response。如果不是,我需要清除服务器端的一些东西。为此,我尝试使用OperationContext.Current.InstanceContext.Closed 和OperationContext.Current.InstanceContext.Faulted。 OperationContext.Current.InstanceContext.Closed 总是触发,但 .Faulted 事件永远不会触发,无论我做什么(连接超时,在接收数据时关闭客户端,拔下电缆)。 OperationContext.Current.InstanceContext.State 也总是关闭。
如何检测到客户端没有收到请求? 作为一种替代解决方案,我想如果我在客户端发现错误,在服务器端调用清理方法,但这可能会使事情复杂化,因为互联网连接可能会中断一段时间。
【问题讨论】:
-
我认为这是不可能的。确认总是从服务器到客户端。如果您需要从客户端到服务器的确认,则必须通过调用另一个 Web 服务来完成。