【发布时间】:2012-06-04 22:26:40
【问题描述】:
我希望所有错误都转到同一个错误页面。我最初确实尝试了带有状态码的错误标签。这很好用,但我宁愿不必指定任何状态代码,并且仍然让每个错误都转到一页。问题是如果我删除状态码条目,404 会转到服务器的 404 页面,而不是我的错误页面。
有没有办法将所有错误配置到同一页面?
【问题讨论】:
标签: c# asp.net asp.net-mvc c#-4.0
我希望所有错误都转到同一个错误页面。我最初确实尝试了带有状态码的错误标签。这很好用,但我宁愿不必指定任何状态代码,并且仍然让每个错误都转到一页。问题是如果我删除状态码条目,404 会转到服务器的 404 页面,而不是我的错误页面。
有没有办法将所有错误配置到同一页面?
【问题讨论】:
标签: c# asp.net asp.net-mvc c#-4.0
您应该更改您的 web.config 并添加 customErrors 元素。然后你可以设置默认重定向到一个signle页面
举例
<customErrors mode="On" defaultRedirect="Error.aspx">
</customErrors>
可以参考MSDN文章 http://msdn.microsoft.com/en-us/library/h0hfz6fc.aspx
在 IIS7 上,您可以使用新的 httpErrors 部分
<system.webServer>
<httpErrors defaultPath="Error.aspx" defaultResponseMode="Redirect">
</httpErrors>
</system.webServer>
更多信息 http://www.iis.net/ConfigReference/system.webServer/httpErrors
【讨论】:
如果我理解得很好,您需要将所有错误发送到您的自定义错误页面,以及 iis7 给出的错误(不仅仅是您的程序)
这是你需要在 II7 上设置的东西,但你也可以从 web.config 设置它(但实际上是给 ii7 说明)这里是一个例子
<configuration>
<system.webServer>
<httpErrors errorMode="DetailedLocalOnly" defaultResponseMode="File" >
<remove statusCode="500" />
<error statusCode="500"
prefixLanguageFilePath="C:\Contoso\Content\errors"
path="500.htm" />
</httpErrors>
</system.webServer>
</configuration>
参考:http://www.iis.net/ConfigReference/system.webServer/httpErrors
【讨论】: