如何在WCF服务返回数据之前确定客户端是否断开连接?

时间:2009-09-03 02:26:48

标签: c# wcf web-services

我有一个带有GetData()函数的WCF服务

当我的客户端调用此函数时,在循环浏览一些内容后需要一段时间才能返回数据

在这段时间内,如果我拉动服务器上的电线,则不会抛出任何错误。

如何知道客户端是否断开连接?

感谢。

编辑:我正在使用Wshttpbinding

2 个答案:

答案 0 :(得分:3)

我不知道这是否仅适用于双工通道,但您可以订阅该通道的客户端关闭事件。查看OperationContext.Current.Channel.Closed。

下面列出的博客帖子有更多信息 http://www.rcs-solutions.com/blog/2008/09/24/HandlingDisconnectsWithWCF.aspx

答案 1 :(得分:1)

您使用的是哪种绑定和协议?

通常,服务器不了解客户端,也不会知道客户端是否消失。如果您有双工绑定,那么您有一个从服务器回到客户端的通道,然后您可以使用Emmanuel发布的链接中描述的技术。

除此之外 - 我不知道服务器在发生错误之前能够发现客户端已断开连接的任何方式(例如,通道故障,因为客户端无法再接收响应)。

马克