Если в WCF возникает ChannelTerminationException, какое событие вызывается Failed или Closed? - PullRequest
1 голос
/ 28 августа 2010

информативно

1 Ответ

2 голосов
/ 28 августа 2010

Ни. Канал все еще будет в открытом состоянии.

После обработки операции с IsTerminating , установленным в значение True, сервер помечает сеанс как завершенный, а последующие вызовы возвращают сбой с кодом SessionTermination, который транслируется в исключение ChannelTeridityException.

Однако, если этот атрибут установлен на стороне клиента, он автоматически установит канал на Закрытый после вызова этой операции. Если это произойдет, попытка использовать канал вызовет исключение InvalidOperationException.

Единственный способ получить это исключение для клиента - не устанавливать этот атрибут и полагать, что канал все еще открыт. WCF не закроет канал в ответ на эту ошибку, поэтому он все еще будет открыт.

...