8

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

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

ChannelFactory对于 a出现故障的情况,我还将欣赏一个可重现的具体示例。

4

1 回答 1

0

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

var factory = new ChannelFactory<ITestService>();
try
{
    factory.Open();
}
catch
{
    Console.WriteLine(factory.State);
}
于 2014-09-05T15:51:03.647 回答