一个 ChannelFactory 可能会变成故障状态吗?

8
假设我正在缓存一个ChannelFactory<T>并使用它来创建通道。这些通道用于向其他服务进行WCF调用,然后被(安全地)处理。
我需要担心缓存的ChannelFactory变得故障,因此无法用于创建新通道吗? 如果是这样,我需要用新的ChannelFactory替换它吗?
我还希望提供一个可重现的具体示例,说明ChannelFactory变得故障的情况。

如果有疑虑,您可以在访问之前检查状态,以确保不会访问已关闭或出错的通道。 - atconway
@atconway 我说的是ChannelFactory出现故障,而不是channel。如果不必要,我不想实现重新创建通道工厂的逻辑... - rony l
我正想问同样的问题。在我看来,只要你的各个通道得到适当处理,那么你在ChannelFactory中遇到的唯一故障将会发生在类的实例化期间。自那以后,你还遇到过其他问题吗? - Nelson Rothermel
1个回答

0

我认为在这种情况下,你不需要担心故障状态。 当ChannelFactory在打开过程中出现问题(当您调用Open()方法或创建第一个通道而没有调用Open()时可能会发生)时,它的状态会更改为Faulted。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接