出于安全原因(不显示.net框架版本),我想确保asp.net黄页(错误页面)永远不会显示给访问者。
什么是最佳做法?
请注意,我使用自定义作为httperrors的错误模式,但随后:
- 我是否必须声明所有潜在的http错误?我可以忘记一个状态......
- 更好的方式?
我的web.config示例:
<httpErrors errorMode="Custom">
<remove statusCode="502" subStatusCode="-1" />
<remove statusCode="501" subStatusCode="-1" />
<remove statusCode="412" subStatusCode="-1" />
<remove statusCode="406" subStatusCode="-1" />
<remove statusCode="405" subStatusCode="-1" />
<remove statusCode="403" subStatusCode="-1" />
<remove statusCode="401" subStatusCode="-1" />
<remove statusCode="400" subStatusCode="-1" />
<remove statusCode="404" subStatusCode="-1" />
<remove statusCode="500" subStatusCode="-1" />
<error statusCode="404" path="/404Page.aspx" responseMode="ExecuteURL" />
<!-- ETC error for each status .... -->
</httpErrors>
答案 0 :(得分:2)
这就是我在web.config中的项目。它可以捕获几乎所有内容......您可以使用此方法拥有任意数量的自定义错误代码。
<customErrors mode="On" defaultRedirect="pgError.aspx">
<error statusCode="504" redirect="pgNoConnection.aspx"/>
</customErrors>
答案 1 :(得分:2)
我认为指定defaultRedirect
会导致任何错误代码重定向到此默认页面。
在此示例中,除了500之外,所有http错误代码都被重定向到GenericError.htm
,重定向到InternalError.htm
。您可以删除导致不同重定向到状态代码500的行,并且所有错误都将转到同一页面。
<configuration>
<system.web>
<customErrors defaultRedirect="GenericError.htm"
mode="RemoteOnly">
<error statusCode="500"
redirect="InternalError.htm"/>
</customErrors>
</system.web>
</configuration>
Here您拥有customErrors部分的完整MSDN参考
答案 2 :(得分:2)
如果没有获取黄页,请按照以下步骤操作:
(1)设计自定义错误页面,例如Error.aspx
(2)在错误页面完成后,将Web应用程序配置为使用自定义错误页面代替运行时错误YSOD。这是通过在section的defaultRedirect属性中指定错误页面的URL来完成的。将以下标记添加到应用程序的Web.config文件中:
<configuration>
...
<system.web>
<customErrors mode="RemoteOnly"
defaultRedirect="~/ErrorPages/Oops.aspx" />
...
</system.web>
</configuration>
(3)默认情况下,所有类型的错误都会导致显示相同的自定义错误页面。但是,您可以使用该部分中的子元素为特定HTTP状态代码指定其他自定义错误页面。例如,要在发现页面未找到错误时显示不同的错误页面,其HTTP状态代码为404,请更新该部分以包含以下标记:
<customErrors mode="RemoteOnly" defaultRedirect="~/ErrorPages/Oops.aspx">
<error statusCode="404" redirect="~/ErrorPages/404.aspx" />
</customErrors>
有关详细信息,请点击此链接: http://www.asp.net/web-forms/tutorials/deployment/displaying-a-custom-error-page-cs