我相信我已经正确地设置了我们的MVC应用程序以使用[HandleError]
。这是我的控制器:
[HandleError]
public class SupportController : BaseController {
public ActionResult Toss() {
throw new Exception("uh oh");
}
// snip
}
我已经在web.config
中设置了我的customErrors
标记为"On":
<customErrors mode="On"></customErrors>
然而,我仍然在出现异常时得到了“黄色屏幕死亡”的错误。在我的 Toss()
操作中设置断点显示 HttpContext.IsCustomErrorEnabled
已设置为 true。我们没有对视图引擎做任何事情,
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 的发布而升级。可能还留下了一些怪异的设置吗?
我可以让其他应用程序工作,所以我有点困惑。
\Views\Shared目录下使用[HandleError(View = "/Views/Shared/Error.aspx")],但没有起作用。 - swilliams