我有一个自定义(通用)代理类,用于连接到我的WCF服务。我希望提供的这一类功能之一是能够从服务故障(即故障通信信道)和关机中“恢复”。为此,我获得对服务通道的引用并订阅ICommunicationObject.Closed和ICommunicationObject.Faulted事件。当这些事件发生时,我开始一个“恢复”过程,基本上每隔几秒就尝试重新建立到服务的连接。假设是,如果服务变得不可用,无论出于何种原因,服务将很快变为可用,并且客户端应用程序可以获取它的位置。使WCF代理对服务关闭作出反应的问题
我有两项服务。服务A需要回调合同,服务B不需要。服务A使用双工信道,服务B不使用。两者都需要会话。服务A隐式创建会话;服务B定义了IsInitiating和IsTerminating操作。这里的(有点混乱)的行为我看到:
服务A
- 正常关机 - >发生故障的事件引发,可以通过代理服务器来处理,而不是封闭的事件。
- “硬”关机 - >与上面相同。
服务B
- 正常关机 - 没有事件被引发。
- “硬”关机 - 未引发任何事件。
请注意,这两个服务使用相同的代理类。唯一的区别在于它们是如何初始化的。代理A使用双工通道工厂,因此必须创建一个实例上下文,通过实例实现服务A的回调协议。代理B仅使用“常规”渠道工厂。
任何想法?
非常感谢, J.
嗨,是否有类似的问题。你最终获得了这个成功吗? – Klee 2013-02-27 04:49:19