2013-03-21 8 views
1

Как добавить необработанные исключения по приложениям в тело ответа в WEB API. Если нет исключений, сообщение об успешности должно быть отправлено в орган ответа для всех ответов .... Нужна помощь в достижении этого.Как добавить необработанные исключения по приложениям в тело ответа в WEB API

+0

Вам необходимо разработать свой вопрос и предоставить код, чтобы показать, как вы пробовали –

+0

Я использую класс исключений в каждой модели и добавляю класс к ответному сообщению от WEB API. – Mohan

ответ

2

Вам нужны две вещи. Для обработки исключений вам нужно установить IncludeDetailErrorPolicy в объекте HttpConfiguration,

Вы можете настроить параметры политики ошибок как часть объекта конфигурации (HttpConfiguration) в свойстве IncludeErrorDetailPolicy. Это просто перечисление, которое инструктирует веб-API о том, как справляться с исключениями.

Возможные значения для этого перечисления являются

По умолчанию: Это использует параметры конфигурации CustomErrors, если вы используете ASP.NET в качестве хоста или LocalOnly для самостоятельного хозяина. LocalOnly: только включает в себя сведения об ошибках для локальных запросов Всегда: Всегда содержит сведения об ошибке Никогда: Никогда не включает в себя подробную информацию об ошибке

Когда происходит исключение, Web API будет проверять значение этой настройки для включения сведений об исключении в ответное сообщение или нет. Например, если параметр «Всегда» включен, веб-API будет сериализовать данные об исключениях как часть сообщения, которое вы получите как ответ.

Сообщение об успехе не имеет большого смысла, поскольку у вас уже есть код состояния ответа. Код состояния равен OK означает, что все прошло нормально. Если вы хотите добавить дополнительное сообщение, используйте HttpMessageHandler, который проверяет код состояния ответа. Если код состояния в порядке, добавьте сообщение. Тем не менее, тело ответа уже установлено в этот момент, поэтому вы не сможете его изменить. Вы могли бы добавить сообщение в виде заголовка.

+0

Один комментарий - вы все равно можете изменить тело ответа в HttpMessageHandler. Ответ еще не отправлен. Он отправляется только после того, как все обработчики сообщений полностью запущены. –

Смежные вопросы