Я создал службу WCF, которая использует привязку NetTCP.Служба WCF Не удается поймать сбой клиента
Доступ к моей услуге осуществляется клиентом, который сохраняет его канал обратного вызова и использует его для последующего вызова клиента (это постоянное соединение tcp). Все работает нормально, но если я решаю внезапно убить клиента, я получаю исключение SocketException, которое я не могу уловить («существующее соединение было принудительно закрыто удаленным хостом»).
Что я уже пробовал?
Я добавил примерки уловов положения в каждом методе с использованием канала обратного вызова, и даже в верхнем уровне - WCFHost который начинает свою службу.
Я пытался получать как канал и канал обратного вызова и добавить метод для обработки канала поврежденного события:
var channel = OperationContext.Current.Channel; channel.Faulted += ChannelFaulted; var callbackChannel = OperationContext.Current.GetCallbackChannel<CallbackInterface>(); var comObj = callbackChannel as ICommunicationObject; comObj.Faulted += ChannelFaulted;
Короче говоря, я пытаюсь обрабатывать исключения Брошенных клиент - на стороне сервера.
Спасибо, но моя проблема в том, что я не могу поймать исключение и поэтому не могу прервать или закрыть канал. Я получаю исключение, которое я вижу в своей Visual Studio, но он не связан ни с одной строкой в коде, и ни одно из моих предложений try-catch не ловит его. –
Можете ли вы предоставить больше кода? –