微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net-mvc – ASP.NET MVC HandleError不工作(customErrors设置为“开”)

我相信我已经设置了我们的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.

解决方法

如果处理错误页面时出现问题,则会发生这种情况..如果您调试应用程序,则在初始异常之后,您会遇到另一个问题(异常从错误页面)..我发生了这种情况,以及我的原因是因为我有一个强类型的主页面,错误页面正在使用这个主页面,并且由于主页面与实际页面共享相同的模型,主页面正在获取HandlerErrorInfo模型,而不是我预期的类型模型.

就个人而言,我认为这是一个糟糕的设计在asp.net mvc(和其余的),但你可以通过不使用相同的母版页面解决这个问题(甚至你可以继承的主页继承)纯类型的主页纯粹从无类型的继承层

否则这是在错误视图中发生的某种异常(很可能).

原文地址:https://www.jb51.cc/aspnet/250877.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐