如何永不显示黄色错误页面?

时间:2012-03-12 14:47:29

标签: asp.net web-config

出于安全原因(不显示.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>

3 个答案:

答案 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