2015-02-26 4 views
2

В моем приложении MVC, когда запрос POST отправляется на сервер (с помощью JQuery) и возникает ошибка проверки, 400 Bad Request возвращается, как задумано:Debugging 400 Неверный ответ Запрос

HTTP/1.1 400 Bad Request 
Cache-Control: private 
Content-Type: application/json; charset=utf-8 
Server: Microsoft-IIS/8.5 
X-AspNet-Version: 4.0.30319 
Date: Thu, 26 Feb 2015 08:35:50 GMT 
Content-Length: 174 

{"ReturnValue":null,"Results":[{"Message":"The xyz field is required.","ErrorNumber":123,"Severity":1}]} 

Этот работает по назначению на моей локальной машине. Однако при развертывании приложения на сервер, ответ на точно такой же запрос выглядит иначе:

HTTP/1.1 400 Bad Request 
Cache-Control: private 
Content-Type: text/html 
Server: Microsoft-IIS/7.5 
X-AspNet-Version: 4.0.30319 
Date: Thu, 26 Feb 2015 08:37:01 GMT 
Content-Length: 24 

Invalid Request 

Обрати внимание, что тип контента text/html, а тело ответа не содержит JSON больше.

Что может быть причиной этого? Я был бы признателен за указатель, откуда начать отладку.

ответ

3

После дальнейшего поиска и чтения, я нашел ответ в this post, который также относится к полезной статье IIS 7 Error Pages taking over 500 Errors

проблема была IIS с более 400 испорченным запросом и заменить мой собственный JSON ответ с содержанием ошибок IIS. Такое поведение можно отключить с помощью настройки TrySkipIisCustomErrors:

Response.TrySkipIisCustomErrors = true; 
Response.StatusCode = 400; 
Смежные вопросы