Неправильный запрос ASP.NET+Azure 400 не возвращает данные JSON
В моем контроллере ASP.NET MVC есть действие, которое возвращает данные JSON с 400 ошибочными запросами, когда недействительные параметры передаются действию.
[HttpDelete]
public ActionResult RemoveObject(string id) {
if(!Validate(id)) {
Response.StatusCode = (int)HttpStatusCode.BadRequest;
return Json(new { message = "Failed", description = "More details of failure" });
}
}
Это прекрасно работает под управлением IIS или с сервером тестирования разработки, запущенным из Visual Studio. После развертывания проекта в Azure неверный запрос 400 возвращается без данных JSON. Тип содержимого изменен на "text/html" и "Bad Request" для сообщения.
Чем отличается поведение в Azure?
1 ответ
Решение
Добавьте следующую запись в ваш файл "web.config".
<system.webServer>
<httpErrors existingResponse="PassThrough"/>
</system.webServer>
Это позволит HTTP-ошибкам проходить через бездействия.