我相信我已经设置了我们的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.
我们没有对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,因为它们被发布.可能有一些从那里遗留下来的恶作剧?
我可以让这个工作在其他应用程序,所以我有点flummoxed.