У меня есть два приложения Windows Forms .NET C #, которые обмениваются данными друг с другом через именованные каналы WCF. В одном из приложений размещается служба WCF, а в другом - клиент. Связь работает нормально, клиент может вызывать методы обслуживания, обратные вызовы работают нормально и т. Д. Однако одна проблема, с которой я сталкиваюсь, заключается в том, что если хост-приложение завершает работу, клиент не может определить, что канал больше не доступен. Я попытался зарегистрировать обработчики событий в канале для всех событий (Closing, Closed, Faailed), но они никогда не вызываются при завершении работы хост-приложения. Кроме того, если я попытаюсь проверить состояние канала на клиенте с помощью свойства pipe.State, я верну состояние Opened, даже если канал неисправен. Тогда, конечно, он выдает исключение, если я пытаюсь вызвать метод службы. Мне либо нужно, чтобы мое клиентское приложение было уведомлено о том, что служба закрывается, закрывается или неисправна, либо мне нужно иметь возможность обнаруживать это перед вызовом каждого метода службы.
Есть ли у кого-нибудь рабочие примеры этого сценария?