Должны ли конструкторы для служб WCF использовать ошибки для обработки ошибок?
У меня есть сервис wcf. Сам сервис (класс, который наследует ServiceContract) имеет конструктор, который иногда выдает исключения. Я хочу представить пользователю сообщение, если служба не работает. Должен ли я использовать неисправности, как для метода обслуживания?
1 ответ
Под отказом обычно подразумевается предоставление информации об ошибках через границы служб, и в большинстве случаев ошибка отправляется как ответ на неверно сформированное или недействительное сообщение запроса. Учитывая это, я бы сказал, что ошибка здесь не имеет смысла.
Я согласен с приведенным выше комментарием, что конструктор для класса обслуживания должен избегать создания исключений. Если ваша служба работает с сеансом, вы можете рассмотреть вариант, в котором вы выполняете этот тип инициализации в результате определенной операции службы. Это можно сделать в WCF, пометив такую операцию службы с помощью " IsInitiating = true " в атрибуте [OperationContract]. В этот момент вы сможете сгенерировать ошибку и надеяться, что она достигнет предполагаемого клиента.