假设我要缓存ChannelFactory<T>
并使用它来创建 channel 。这些 channel 用于对其他服务进行WCF调用,然后被(安全地)处置。
我是否需要担心缓存的ChannelFactory
出现故障并因此无法用于创建新 channel 的情况?
如果是这样,我是否需要用新的ChannelFactory
替换它?
对于ChannelFactory
出现故障的情况,我也将提供一个可重现的具体示例。
最佳答案
在这种情况下,我认为您不必担心故障状态。
ChannelFactory在打开过程中遇到问题时,其状态会更改为Faulted(调用Open()方法或创建第一个 channel 而不调用Open()时可能发生的情况)。
var factory = new ChannelFactory<ITestService>();
try
{
factory.Open();
}
catch
{
Console.WriteLine(factory.State);
}