📜  web.config 自定义错误 (1)

📅  最后修改于: 2023-12-03 15:35:40.152000             🧑  作者: Mango

使用 web.config 自定义错误

在 ASP.NET 中,任何未处理的异常都将导致服务器返回默认的错误页面,这通常不是用户所期望看到的结果。为了提供更好的用户体验,可以使用 web.config 文件来自定义错误页面和错误信息。

配置

在 web.config 文件中,可以使用 customErrors 元素来配置自定义错误页面和错误信息。该元素有以下属性:

  • mode: 指定错误处理模式,可以是 Off(禁用自定义错误), On(启用自定义错误) 或 RemoteOnly(仅在远程访问时启用自定义错误)。
  • defaultRedirect: 指定未处理异常的默认重定向页面。
  • redirectMode: 指定重定向模式,可以是 ResponseRedirect(使用 302 重定向)或 ResponseRewrite(使用 URL 重写)。
  • error: 指定特定的 HTTP 错误代码,可以为 404、500 等。
  • redirect: 指定特定 HTTP 错误代码的重定向页面。

示例:

<customErrors mode="On" defaultRedirect="~/ErrorPages/Error.aspx" redirectMode="ResponseRedirect">
  <error statusCode="404" redirect="~/ErrorPages/404.aspx" />
  <error statusCode="500" redirect="~/ErrorPages/500.aspx" />
</customErrors>

以上示例指定了启用自定义错误,未处理异常的默认重定向页面为 /ErrorPages/Error.aspx,重定向模式为 ResponseRedirect(使用 302 重定向)。还定义了当 HTTP 错误代码为 404 或 500 时,重定向到不同的页面。

错误页

错误页通常需要显示错误信息。在 ASP.NET 中,可以使用 ServerError 对象来获取有关当前异常的信息。

例如,在 ASP.NET 处理程序中,可以这样编写:

protected void Page_Load(object sender, EventArgs e)
{
    Exception ex = Server.GetLastError();

    if (ex != null)
    {
        // 处理异常
    }
}

可以使用 ex.Messageex.StackTrace 等属性来获取异常信息。

小结

使用 web.config 自定义错误,可以提供更好的用户体验,并帮助开发人员快速定位和解决问题。需要注意的是,错误页通常需要提供足够的错误信息,但不应包含敏感信息,以防止信息泄露。