web.config文件之自定义错误节

web.config文件之自定义错误节

 

  大家都知道,在开发asp.net应用程序时,通过web.config文件可以配置在执行 Web 请求期间发生未处理的错误时,ASP.NET

显示信息的方式。下面是一个典型的基本配置:

<system.web>
<customErrors mode="On"  defaultRedirect="GenericErrorPage.htm" >
      <!--资源不可用。服务器理解客户端的请求,但拒绝处理它:如请求web.config文件-->
      <error statusCode="403" redirect="NoAccess.htm" />
      <error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
</system.web>

  上面的customErrors则是我们定义自定义错误的配置结点,它有两个比较重要的属性:mode和defalutRedirect。

下面是MSDN上的描述:

复制代码
mode指定是启用还是禁用自定义错误,或者在服务器自身之外的计算机上查看错误时,禁用详细错误消息。 

可以将 mode 设置为以下值:
On指定启用自定义错误。 如果未指定 defaultRedirect 特性,用户将看到一般性错误。 会向远程客户端和本地主机显示自定义错误。
Off指定禁用自定义错误。 会向远程客户端和本地主机显示详细的 ASP.NET 错误
RemoteOnly指定仅向远程客户端显示自定义错误并且向本地主机显示详细的 ASP.NET 错误。 这是默认值。
defaulRedirect指定出错时将浏览器定向到的默认 URL。 如果未指定该特性,则显示一般性错误。
复制代码

  上面的描述中有3种错误:自定义错误、一般性错误、详细的asp.net错误。

      那这三种错误分别指的是什么,下面通过一个简单的例子来说明。

    1)如果设置mode=Off,则禁用自定义错误,向远程客户端和本地主机显示详细的 ASP.NET 错误。

  上图的信息即是详细的详细的 ASP.NET 错误。

  2)如果设置mode=On,则启用自定义错误。如果未指定 defaultRedirect 特性,用户将看到一般性错误。

  我们去掉 defaultRedirect属性,并设置mode=On。此例子中代表:启用自定义错误显示,但会发生分母为0的错误时

ASP.NET的处理方式。如下图所示:

  上图显示的信息即为一般性错误

  3)如果设置mode=On,则启用自定义错误。此处指定 defaultRedirect=GenericErrorPage.htm,则将显示自定义错误。

  此时显示的则是自定义错误

    同样的,我们也可以指定当访问的文件不存在或无权限访问当前页面时,asp.net如何显示我们自定义的页面。可以通过error子

结点来配置。如:

<error statusCode="403" redirect="NoAccess.htm" />

<error statusCode="404" redirect="FileNotFound.htm" />



更多:http://www.cnblogs.com/andylcp/p/3219029.html  

此处只简单描述自定义错误配置中比较常用的信息,有关配置结点更详细的信息请参考MSDN。

原文地址:https://www.cnblogs.com/sunet/p/3222759.html