我相信我已经设置了我们的 MVC 应用程序以[HandleError]
正确使用。这是我的控制器:
[HandleError]
public class SupportController : BaseController {
public ActionResult Toss() {
throw new Exception("uh oh");
}
// snip
}
我已将customErrors
标签设置web.config
为“开”:
<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。可能有一些古怪的设置是从那里遗留下来的?
我可以在其他应用程序上使用它,所以我有点困惑。