Если для нескольких вызовов службы WCF используется один экземпляр ClientBase<T>
, он может получить канал в состояние с ошибкой (т.е. когда служба не работает).
Я хотел бы исцелить канал автоматически, когда служба снова появится. Единственный способ, которым я нашел, - вызвать следующий код перед каждым вызовом метода:
if (clientBase.InnerChannel.State == CommunicationState.Faulted)
{
clientBase.Abort();
((IDisposable)clientBase).Dispose();
clientBase = new SampleServiceClientBase();
}
У меня возникло ощущение, что это неправильный способ сделать это. Кто-нибудь получил лучшую идею?