Субъект является самоочевидным. У меня есть среда разработки и производства. Разработчик env. это моя локальная машина. У меня есть методы действий в contolers, который устанавливает код состояния ответа на 500, когда что-то ошибается (ошибка произошла или логическое несоответствие) и возвращает Json-answer. Мой общий метод выглядит следующим образом:
[HttpPost]
public ActionResult DoSomething(int id)
{
try
{
// some useful code
}
catch(Exception ex)
{
Response.StatusCode = 500;
Json(new { message = "error" }, JsonBehaviour.AllowGet)
}
}
На стороне клиента в производстве env. когда такая ошибка возникла, ajax.response выглядит как HTML-код, а не ожидаемый JSON.
Рассмотрим это:
<div class="content-container">
<fieldset>
<h2>500 - Internal server error.</h2>
<h3>There is a problem with the resource you are looking for, and it cannot be displayed.</h3>
</fieldset>
</div>
Контекст фильтра не является параметром. Я думаю, что это какая-то проблема IIS или web.config.
РЕШЕНИЕ:
Мы решили добавить TrySkipIisCustomErrors
в BeginRequest в Global.asax и решить проблемы в каждом методе в нашем приложении.