У меня есть приложение, которое использует некоторую службу WCF WebSocket. Теперь, если хост закрывает соединение, я получаю следующие исключения:
- System.Net.Sockets.SocketException
- System.Net.WebSockets.WebSocketException
- System.ServiceModel.CommunicationException
Теперь я хочу обработать эти исключения в своем клиентском приложении и попытаться повторно подключиться / сообщить пользователю и т. Д.
Но как именно поймать эти исключения?
Может быть, подключиться к каналу неисправного события.
Я попробовал это:
context = new InstanceContext(this);
var endpointAddress = new EndpointAddress(ServerFullAddress);
context.Faulted += Channel_Faulted;
client = new ServiceName(context, "NetHttpBinding_ServiceName", endpointAddress);
Но метод ChannelFaults никогда не выполняется. Как правильно подключить это событие, чтобы этот метод выполнялся при закрытии websocket.
Моя другая идея - реализовать какой-нибудь глобальный обработчик исключений и перехватывать там эти исключения? Что ты думаешь?