2013-03-13 87 views
0

我想写一个selfhosted .NET服务的工作流程是这样的:检查客户端连接到工作流服务

enter image description herehttp://i.stack.imgur.com/Hij20.png

但我怎么能确定客户端是否还活着? WCF绑定的InactivityTimeout似乎不会触发。我可以写一个超时功能(测量最后一次请求之间的时间)。但是这并不能确保客户端断开连接并且不仅仅是闲置。 .NET框架中没有常用的方法吗?

谢谢。

+0

工作流服务是一个WCF服务,您本身不连接到WCF服务。客户端调用服务方法并且(通常)接收回应。你的客户意味着什么*活着*? – Joao 2013-03-13 18:36:08

+0

@Jota服务实例在循环中保持活动状态,直到调用ExitWf。所以客户可以按照自由度顺序多次调用函数。但是,如果客户例如崩溃ExitWF从不被调用,并且该实例永远不会被删除 – Mimefilt 2013-03-18 11:00:43

回答

0

您从某处运行此服务,并且必须运行服务器以获取服务的响应。您可以使用此代码制作回拨服务器:

var host = new ServiceHost(serviceCallback, new Uri("localhost:8080")); 

然后在服务中您需要将信息发送回此地址。所以你可以在调用者客户端动态地跟踪你的服务的当前状态。