有没有人知道为代理创建监听器的方法,以便在CommunicationState发生变化时我可以调用一个动作或一个方法?
一个例子,我想更新我的WCF服务以进行代码更改。由于应用程序处于早期开发阶段,因此代码更改非常频繁。但是,用电子邮件告诉他们嘿他们需要重新启动他们的应用程序,而不是让我的员工烦恼。我宁愿避免他们重新启动应用程序并向他们发送电子邮件。我宁愿写一个监听器来查看服务的通信状态,如果它已经变为故障状态,则尝试重新连接。
修改
这里可能还有更多的背景。
InstanceContext context = new InstanceContext(this);
Subscriber = new SubscriptionService.MySubscriptionServiceClient(context);
Subscriber.Subscribe("");
所以基本上我想知道订阅服务何时停止,以便我可以尝试每60秒左右重新连接一次。我试图在Subscriber服务中寻找一个事件,但我什么也没看到。我需要在服务端实现一些东西吗?
由于
答案 0 :(得分:1)
您可以使用生成的客户端类的InnerChannel
属性上提供的Faulted事件。客户端类的State
属性只是InnerChannel.State
的包装器,因此这应该可以按照您的意愿工作。
(作为参考,如果要在代码中创建通信通道而不是使用生成的代理,也可以在ChannelFactory<TChannel>
上使用类似命名的事件。)