Предположим, у нас есть хост 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
, если во время выполнения возникнет какое-либо исключение.
Это нормально, поскольку мы никогда не используем повторно каналы, и это не влияет на фабрику каналов и хост.
А как насчет двух последних? Что может заставить их перейти в состояние сбоя?