У меня есть ситуация, в которой я ищу совет.
У меня есть служба WCF, в которой в некоторых методах я создаю объект, который, в свою очередь, устанавливает сокет-соединение с сервером.Я "кэширую" эти объекты соединения в объекте словаря, который является "глобальным" для моего класса обслуживания.Как только эти соединения установлены, с каждым из них связывается таймер, и обратный вызов таймера регулярно отправляет на сервер сообщение keep-alive.
Проблема возникает, если по какой-либо причине разрывается соединение с сервером.Когда это происходит, я получаю необработанное исключение, которое, кажется, убивает службу WCF.
Я надеюсь, что есть способ, которым я могу перехватить эти связанные с таймером исключения и просто закрыть сокет и удалить объект подключения из кэша, но я не уверен, что есть способ.Казалось бы, когда я оставляю метод, использующий объект подключения, нет ничего, что могло бы перехватить асинхронное исключение.