Я считаю, что я настроил наше приложение MVC для правильного использования [HandleError]
. Это мой контроллер:
[HandleError]
public class SupportController : BaseController {
public ActionResult Toss() {
throw new Exception("uh oh");
}
// snip
}
И у меня есть установите тег customErrors
в web.config
на "On":
<customErrors mode="On"></customErrors>
Тем не менее, я все еще получаю "Желтый экран смерти" на исключениях. Установка точки останова в моем действии Toss()
показывает, что HttpContext.IsCustomErrorEnabled
установлено значение true.
Мы ничего не делаем с View Engine, а BaseController
ничего не путает (и другие контроллеры, которые не расширяют его, имеют одинаковую проблему).
Я развиваюсь в Windows XP и имею ту же проблему, когда приложение развернуто в поле сервера 2003 (IIS 6).
Я не думаю, что на странице error.aspx
есть исключение:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<System.Web.Mvc.HandleErrorInfo>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="errorContent" ContentPlaceHolderID="MainContent" runat="server">
<h2>
Sorry, an error occurred while processing your request.
</h2>
</asp:Content>
Одна вещь, которая может быть другой, заключается в том, что это приложение было создано обратно, когда MVC Beta была последней версией, и была обновлена до RC, а затем RTM по мере их выпуска. Может ли быть какая-то странная настройка, оставшаяся оттуда?
Я могу заставить эту работу работать с другими приложениями, поэтому я немного запутался.