ChannelFactory 会出现故障吗?

Posted

技术标签:

【中文标题】ChannelFactory 会出现故障吗?【英文标题】:Can a ChannelFactory become Faulted? 【发布时间】:2012-12-08 03:47:43 【问题描述】:

假设我正在缓存 ChannelFactory<T> 并使用它来创建频道。这些通道用于对其他服务进行 WCF 调用,然后被(安全地)处置。

我是否需要担心缓存的ChannelFactory 出现故障从而无法用于创建新频道的情况? 如果是这样,我需要用新的ChannelFactory 替换它吗?

对于ChannelFactory 出现故障的情况,我还希望有一个可重现的具体示例。

【问题讨论】:

如果担心,您始终可以在访问之前检查状态,以防止访问已关闭或故障的通道。 @atconway 我说的是 ChannelFactory 出现故障,而不是通道。如果我不需要的话,我不想实现重新创建通道工厂的逻辑... 我正要问同样的问题。在我看来,只要您的各个通道得到正确处理,您在 ChannelFactory 中看到的唯一错误就会发生在类的实例化期间。自那以后您是否遇到任何其他问题? 【参考方案1】:

我认为在这种情况下您无需担心故障状态。 ChannelFactory 在打开过程中出现问题时将其状态更改为 Faulted(当您调用 Open() 方法或在未调用 Open() 的情况下创建第一个通道时会发生这种情况)。

var factory = new ChannelFactory<ITestService>();
try

    factory.Open();

catch

    Console.WriteLine(factory.State);

【讨论】:

以上是关于ChannelFactory 会出现故障吗?的主要内容,如果未能解决你的问题,请参考以下文章

无法及时发现设备故障还是你的痛处吗?

WCF 代理仅在使用时出现故障

UIActivityViewController 出现故障

关于centOS网卡报故障问题

WCF,ChannelFactory,“找不到端点元素...”

ChannelFactory:Channel Close() 未关闭连接(netstat 显示 ESTABLISHED)