Когда возникают ошибки в объектах связи WCF?

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

А как насчет двух последних? Что может заставить их перейти в состояние сбоя?


person Yeldar Kurmangaliyev    schedule 13.04.2016    source источник
comment
Отличный вопрос! Есть кое-что интересное о том, как обращаться с этим, когда они действительно выходят из строя, но не много о том, почему. Например, stackoverflow.com/q/315736/569662   -  person tom redfern    schedule 13.04.2016