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();
}
}