web.config中的customErrors标记的用法

详细信息: 若要使他人能够在远程计算机上查看此特定错误信息的详细信息,请在位于当前 Web 应用程序根目录下的“web.config”配置文件中创建一个 <customErrors> 标记。然后应将此 <customErrors> 标记的“mode”属性设置为“Off”。

<!-- Web.Config 配置文件 -->

<configuration>

    <system.web>

        <customErrors mode="Off"/>

    </system.web>

</configuration>

 

注释: 通过修改应用程序的 <customErrors> 配置标记的“defaultRedirect”属性,使之指向自定义错误页的 URL,可以用自定义错误页替换所看到的当前错误页。

<!-- Web.Config 配置文件 -->

<configuration>

    <system.web>

        <customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>

    </system.web>

</configuration>

详细信息

<customErrors> 元素

提供有关 ASP.NET 应用程序自定义错误消息的信息。

配置结构的示例:

<configuration>

   <system.web>

      <customErrors>

<customErrors defaultRedirect="url"

              mode="On|Off|RemoteOnly">

   <error statusCode="statuscode"

          redirect="url"/>

</customErrors>必需的属性

属性 选项 描述

Mode     指定启用、禁用或仅对远程客户端显示自定义错误。

    On 指定启用自定义错误。如果没有指定 defaultRedirect,用户将看到一般性错误。

    Off 指定禁用自定义错误。这允许显示详细的错误。

    RemoteOnly 指定仅向远程客户端端显示自定义错误,并向本地主机显示 ASP.NET 错误。这是默认值。

属性 描述

defaultRedirect 指定发生错误时浏览器指向的默认 URL。如果没有指定 defaultRedirect,则会显示一般性错误。URL 既可以是绝对的(例如 http://www.contoso.com/ErrorPage.htm),也可以是相对的。相对 URL(如 /ErrorPage.htm)是相对于指定 defaultRedirect 的 Web.config 文件而言的,而不是针对产生错误的网页。以波形符 (~) 开头的 URL(如 ~/ErrorPage.htm)表示所指定的 URL 是相对于应用程序根路径而言的。

子标记

子标记 描述

<error> 错误子标记可以出现多次。每出现一次便定义了一个自定义错误条件。

注释

<customErrors> 元素不适用于在 XML Web 服务中出现的错误。

例子:
web.config当中的配置标记写法:
<customErrors mode="On" defaultRedirect="error.aspx">
      <error statusCode="302" redirect="error.aspx?msg=请求的资源暂时驻留在另一不同

的统一资源标识符下。"></error>
      <error statusCode="400" redirect="error.aspx?msg=您的输入可能有误,链接地址有

错误。"></error>
      <error statusCode="401" redirect="error.aspx?msg=权限不能被认可,请退出系统重

新尝试。"></error>
      <error statusCode="403" redirect="error.aspx?msg=您的输入可能有误,不具备可执

行的权限。"></error>
      <error statusCode="404" redirect="error.aspx?msg=链接地址不正确,请尝试重新链

接。"></error>
      <error statusCode="408" redirect="error.aspx?msg=服务器连接超时,请退出系统重

新尝试。"></error>
      <error statusCode="414" redirect="error.aspx?msg=您的输入可能有误,参数传递超

出范围。"></error>
      <error statusCode="500" redirect="error.aspx?msg=服务器错误,请检查数据库操作

字符串。"></error>
      <error statusCode="503" redirect="error.aspx?msg=服务器忙或网络连接异常,请退

出系统重新尝试。"></error>
      <error statusCode="505" redirect="error.aspx?msg=浏览器不支持,请升级您的浏览

器。"></error>
</customErrors>

错误页面error.aspx的源代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="error.aspx.cs"

Inherits="error" %>

<html>
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            您使用了不安全的操作,请确认后重新执行 ....
        </div>
    <div style="color:#ffffff;">
        <asp:Literal ID="Literal1" runat="server"></asp:Literal>
    </div>
    </form>
</body>
</html>
错误页面error.aspx的cs文件代码
using System;
using System.#;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class error : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        this.Literal1.Text = Request.QueryString["msg"].ToString();
    }
}

原文地址:https://www.cnblogs.com/wander1128/p/2558055.html