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

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

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

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

【问题讨论】:

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

标签: c# wcf wcf-client channelfactory


【解决方案1】:

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

var factory = new ChannelFactory<ITestService>();
try
{
    factory.Open();
}
catch
{
    Console.WriteLine(factory.State);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 2016-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    相关资源
    最近更新 更多