【发布时间】:2014-02-19 19:06:07
【问题描述】:
我想知道在 WCF 服务中处理超时的正确方法是什么。
我有一个使用会话的服务。客户端执行连接、各种调用(当用户与客户端应用程序交互时),然后在某些时候执行断开连接。 Disconnect 操作在服务器上执行清理(例如释放 COM 对象)。但是,客户端可以(异常地)终止(由于各种原因)而不调用 Disconnect。 receiveTimeout 过期后,服务将中止。我需要以一种允许我正确清理会话的方式来处理这个问题。我该怎么做?
有我可以处理的事件吗?我可以用它实现和自定义服务的接口?我已经看过了,但没有找到任何东西。 IErrorHandler 对超时没有帮助。
我想到了每次调用服务时都会重置服务上的计时器。当计时器过去时,客户端被认为已断开连接,服务可以清理会话。这合适吗? (这个间隔应该总是小于绑定的receiveTimeout。)
【问题讨论】:
标签: wcf service error-handling timeout