Я перепробовал все, даже удаление asp.net mvc3, и не могу заставить работать глобальный фильтр HandleError.
Я установил фильтр HandleError в Global.asax:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
Также у меня включены CustomErrors (не имеет значения, если я установил defaultRedirect = "Error" или нет, я думаю, что это в документации, потому что это необходимо для более старых версий mvc):
<customErrors mode="On" />
Попытка перемещаться по странице до тех пор, пока не возникнет ошибка, независимо от того, делаете ли вы это с localhost или используете имя хоста, внутри сервера разработки или IIS 7.5, она всегда перенаправляет на стандартную страницу состояния 500 вместо моего пользовательского Error.cshtml посмотреть, что я создал в Shared. Вот код ошибки:
@model System.Web.Mvc.HandleErrorInfo
@{
ViewBag.Title = "Oooops";
}
<h2>Ooops Something really bad happened!</h2>
Также я заметил, что если я создаю новый проект ASP.NET MVC3, а затем выбираю шаблон «Интернет-приложение» и просто включаю customErrors в этом проекте, тогда фильтр HandleError начинает работать нормально, но с использованием пустого шаблона MVC3 не.
Я хочу уточнить, что на самом деле я могу видеть, что представление ошибок обрабатывается при отладке, однако в браузере всегда отображается страница Ошибка 500.