Если в WCF происходит исключение ChannelTeridityException, какое событие вызывается Faults или Closed ?

Самоописательный

1
задан Sandeep 28 August 2010 в 08:32
поделиться

1 ответ

Ни то, ни другое. Канал по-прежнему будет находиться в состоянии Open.

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

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

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

2
ответ дан 2 September 2019 в 21:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: