MVC HandleError返回错误500并查看错误页面

时间:2011-02-28 02:17:31

标签: asp.net-mvc handleerror

我正在使用VSC10的MVC 3并尝试让[HandleError]正常工作。我在控制器中创建了一个测试来模拟崩溃,如下所示:

[HandleError]
public ActionResult Crash()
{
    throw new ApplicationException();
}

还进入了web.config并添加了:

<customErrors mode="on" />

如果我从Chrome运行,MVC会返回Shared / Error.aspx中的视图,所以这项工作正常。

如果我从IE 8运行,我会得到友好的错误页面(“网站无法显示页面,最有可能的原因:......你可以试试......”)。我进入IE工具并关闭“显示友好的HTTP错误消息”并再次运行,IE显示我的Error.aspx视图。显然我无法让用户更改此设置,但至少我知道我的Error.aspx正在返回。

所以我运行Fiddler,当我让浏览器转到我的Crash方法时,它显示即使MVC返回我的Error.aspx视图,它也会返回结果500。这会导致IE认为它有错误,并使用友好页面覆盖我的页面。

我认为MVC应该使用我的Error.aspx页面而不是500返回结果200.任何人都可以给我一些关于尝试什么的想法吗?

1 个答案:

答案 0 :(得分:8)

如果您创建错误页面&gt; 512字节,它应该工作正常。 It's just IE being an inconsiderate swine, as ever