includeExceptionDetailsInFaults
- это скорее инструмент отладки для незапланированных исключений, чем способ фактически доставлять ошибки клиенту. Такие ошибки обычно представляют собой 500 внутренних ошибок сервера, сведения о которых не должны передаваться клиенту. Для службы REST способ доставки этих данных вызывающей стороне по умолчанию - вернуть их в виде текста / HTML.
Однако, если вы пытаетесь вернуть логические ошибки из вашего сервиса, вы должны вызывать экземпляры WebFaultException<T>
, где T может быть простым строковым сообщением или, если вы хотите что-то более сложное, может быть классом, который будет сериализоваться в структурированный формат в соответствии с тем, что сериализовано для конечной точки службы. Вы также можете установить код статуса ответа во время создания WebFaultException<T>
.
Если вы хотите, чтобы универсальная обработка всех необработанных исключений возвращала представление структурированного типа контента и код состояния, вам нужно было бы написать свой собственный IErrorHandler
и выполнить преобразование типа необработанного исключения в WebFaultException<T>
в вашем ProvideFault
реализация.