[英]Definitive Guide to Handling 500 Errors in IIS6, IIS7, ASP.NET MVC3 with Custom Page
我正在尝试将500错误处理页面添加到我的ASP.NET MVC3项目中。
我希望无论本地访问还是远程访问都显示我的自定义错误页面。 我的网站在IIS6,IIS7和IIS7.5 Express上运行
我希望在以下情况下显示它:
我无法做到这一点,实际上我根本无法显示任何自定义错误页面。
我的错误页面位于~/Views/Shared/Error.aspx
我在Global.asax.cs中的Application_Error方法仅记录引发的异常。
我的web.config具有:
<customErrors mode="On" defaultRedirect="~/Views/Shared/Error.aspx" redirectMode="ResponseRewrite">
</customErrors>
...
<system.webServer>
<httpErrors errorMode="Custom" />
...
</system.webServer>
我想念什么? 我需要怎么做才能处理这些情况?
对于IIS 7+,你唯一缺少的,用来定义httpErrors与自定义处理程序来处理的部分:
<configuration>
<system.webServer>
<httpErrors errorMode="Custom">
<remove statusCode="500" />
<error statusCode="500" path="~/Views/Shared/Error.aspx" />
</httpErrors>
</system.webServer>
</configuration>
( <remove />
标记是可选的,具体取决于您的web.config层次结构。)
对于IIS 6及以下版本,您必须通过IIS管理器进行设置,方法是转到相应的“属性”页面的“自定义错误”选项卡,然后将相应的HTTPError行编辑为“消息类型:”“ URL”和“ URL:”“〜/查看/共享/ Error.aspx”。
最好的方法是找出为什么BeginRequest首先会引发异常。 这不应该发生。 在Application_Error中,一种替代方法是使用GetBaseException,然后仅将异常信息重定向到您的自定义错误页面。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.