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