CommunicationState监听器?

时间:2012-04-11 19:21:03

标签: c# wcf events

有没有人知道为代理创建监听器的方法,以便在CommunicationState发生变化时我可以调用一个动作或一个方法?

一个例子,我想更新我的WCF服务以进行代码更改。由于应用程序处于早期开发阶段,因此代码更改非常频繁。但是,用电子邮件告诉他们嘿他们需要重新启动他们的应用程序,而不是让我的员工烦恼。我宁愿避免他们重新启动应用程序并向他们发送电子邮件。我宁愿写一个监听器来查看服务的通信状态,如果它已经变为故障状态,则尝试重新连接。

修改

这里可能还有更多的背景。

InstanceContext context = new InstanceContext(this);
Subscriber = new SubscriptionService.MySubscriptionServiceClient(context);
Subscriber.Subscribe("");

所以基本上我想知道订阅服务何时停止,以便我可以尝试每60秒左右重新连接一次。我试图在Subscriber服务中寻找一个事件,但我什么也没看到。我需要在服务端实现一些东西吗?

由于

1 个答案:

答案 0 :(得分:1)

您可以使用生成的客户端类的InnerChannel属性上提供的Faulted事件。客户端类的State属性只是InnerChannel.State的包装器,因此这应该可以按照您的意愿工作。

(作为参考,如果要在代码中创建通信通道而不是使用生成的代理,也可以在ChannelFactory<TChannel>上使用类似命名的事件。)