WCF Сессии инициируются атрибутомкак прекратить ФОС сеанс
[OperationContract(IsInitiating = true, IsTerminating = false)]
и заканчивали
[OperationContract(IsInitiating = false, IsTerminating = true)]
Есть ли способ, чтобы завершить текущий сеанс WCF, основанный на каком-то состоянии? Предположим, что проверка учетных данных еще не позволяет начать сеанс. Есть ли способ сделать это, не выбрасывая исключение из контракта на операцию, который инициирует сеанс.
Это делается для того, чтобы клиент не выполнял дополнительные вызовы после завершения сеанса. Вероятно, ограничение в WCF в качестве сеансов инициируется клиентом.
Я действительно не знаю ответа на этот вопрос, но мне интересно: что бы вы отправили обратно клиенту? – Stefan
У меня нет образца кода на данный момент, но создайте класс, который реализует IParameterInspector, и выкинет пользовательский контракт на отказ в методе 'BeforeCall', если ваша проверка достоверности не удалась. Документируйте контракт о неисправности в своем api. Кроме того, тот же класс реализует 'Attribute', поэтому вы можете просто применить это поведение к любой операции или даже к классу. – Crowcoder