От http://www.asp.net/web-api/overview/web-api-routing-and-actions/exception-handlingКакая разница между HttpResponseException и HttpException
HttpResponseException
Что происходит, если контроллер Web API выдает исключение? По умолчанию большинство исключений транслируются в ответ HTTP с кодом состояния 500, Internal Server Error.
Тип исключения HttpResponse - это особый случай. Это исключение возвращает любой код состояния HTTP, который вы указали в конструкторе .
За исключением этого не. Скрипач показывает, что возвращается 500 человек.
Однако HttpException, похоже, делает то, что говорится в этой статье.
Неправильная документация или я что-то упускаю?
UPDATE
Печатая что, я была идея. Я пробовал оба из двух контроллеров, ApiController и стандартного контроллера MVC.
Эти два исключения работают в обратном направлении друг к другу в зависимости от типа контроллера, из которого они выбраны.
- Используйте HttpResponseException, чтобы вернуть правильный HTTP-код из контроллера API .
- Используйте HttpException, чтобы вернуть правильный HTTP-код с контроллера MVC.
Вы можете принять собственный ответ – sidon
Thx, это объясняет, почему моя инфраструктура отлично работает с MVC-контроллерами (возвращает правильное исключение) и больше не работает с контроллерами API (возвращается 500) - но это просто doesn Не имеет никакого смысла :( – peter