Обнаружение разъединения сокета в WCF

Мы создаем сервер WCF (.NET 4.0). Он будет использовать только транспорт net.tcp.

Когда клиент закрывает TCP-соединение, сервер получает необработанное исключение CommunicationException и завершает работу.

Q1. Как мне обработать CommunicationException, чтобы сервер не завершил работу и продолжил обслуживание других клиентов?

Q2. Как в обработчике получить SessionId прерванного сеанса? Мне это нужно, чтобы очистить некоторые данные, относящиеся к сеансу.

Заранее спасибо!

PS Соединение осуществляется через Интернет, поэтому сокет может быть закрыт в любое время, независимо от того, корректно ли отключается клиент или нет.

16
задан Soonts 17 March 2011 в 12:12
поделиться