我有两个通过双工 WCF 连接连接的应用程序。我工作得很好,只要连接是一致的。
我现在正在检查如何处理重新连接的情况,当连接丢失并且必须重新连接时。我正在努力理解如何在 WCF 中解决这个问题。
据我所知,这IChannel
是消耗品,但ChannelFactory
价格昂贵。所以我创建了一个工厂,然后是通道。每当我检测到通道中的Closed
orFaulted
事件时,我try
都会关闭通道,分离事件处理程序,然后创建另一个通道。
但是这种方法效果不佳,因为有时也会DuplexChannelFactory<T>.CreateChannel
出错,并抛出此异常:
System.ServiceModel.CommunicationObjectAbortedException occurred
HResult=-2146233087
Message=The communication object, System.ServiceModel.InstanceContext, cannot be used for communication because it has been Aborted.
工厂本身怎么可能以这种方式出现故障?
在 WCF 中处理断开/重新连接的正确方法是什么?