假设我们有一个WCF主机,渠道工厂和渠道:
var host = new ServiceHost(typeof(MyService));
host.AddServiceEndpoint(typeof(IMyService), new NetNamedPipeBinding(), new Uri(hostUrl));
host.Open();
var cf = new ChannelFactory<IMyService>(new NetNamedPipeBinding(), new EndpointAddress(hostUrl));
var ch = cf.CreateChannel();
// The breakpoint is here
假设所有对象都已成功创建,打开并且我们现在处于断点处,那么实际上这三个通信对象是否会出现故障?
如果在执行过程中抛出任何异常,我们的频道将切换到CommunicationState.Faulted
没关系,因为我们从不重复使用频道,也不会影响频道工厂和主机。
最后两个怎么样?什么可以让他们切换到Faulted状态?