C# 如何为所有其他运行时错误添加通用错误页?

C# 如何为所有其他运行时错误添加通用错误页?,c#,asp.net,C#,Asp.net,我正试着调整一下 <customErrors mode="On" defaultRedirect ="~/System/err.aspx"> </customErrors> 在web.config文件中 因此,无论何时任何页面中出现运行时错误或任何类型错误,都不应在该页面上显示错误消息,而应将其重定向到err.aspx页面 有没有这样的配置 网站上有很多链接可以帮助你摆脱这个困境,因此如果你没有得到,请参阅下面的代码。您需要添加如下所示的代码 配置部分。此外,还

我正试着调整一下

 <customErrors mode="On" defaultRedirect ="~/System/err.aspx">
 </customErrors>

在web.config文件中

因此,无论何时任何页面中出现运行时错误或任何类型错误,都不应在该页面上显示错误消息,而应将其重定向到err.aspx页面

有没有这样的配置


网站上有很多链接可以帮助你摆脱这个困境,因此如果你没有得到,请参阅下面的代码。您需要添加如下所示的代码

配置
部分。此外,还应该有一个名为
err
的页面,其中包含cleary所说的错误页面的所有信息

<configuration>
<system.web>
   <customErrors mode="On" defaultRedirect="err.aspx">
      <error statusCode="404" redirect="404.aspx" />
      <error statusCode="500" redirect="500.aspx" />
   </customErrors>
</system.web>

也要看一看,以便清楚地理解


希望这有帮助

我们更喜欢在Global.asax中捕获这些信息,以便在重定向到错误页面之前,我们可以执行一些自定义执行处理,例如写入事件日志、保存到数据库和电子邮件支持人员

<configuration>
<system.web>
   <customErrors mode="On" defaultRedirect="err.aspx">
      <error statusCode="404" redirect="404.aspx" />
      <error statusCode="500" redirect="500.aspx" />
   </customErrors>
</system.web>
在Global.asax.cs中

    void Application_Error(object sender, EventArgs e)
    {

        // Get the exception
        Exception exc = Server.GetLastError();

        // Do something with the exception, write it to the event log, save it to the db, email someone who cares etc

        // Clear the error
        Server.ClearError();

        // Redirect to a generic error page
        Response.Redirect("~/System/err.aspx");

    }
下面是更多的用法示例: (1)你所遵循的方法是正确的。您需要为不同类型的错误指定不同的错误页(如果您希望以不同的方式处理不同的错误类型),如nadeem所述

(2)第二种方法最好是在Global.asax中使用应用程序错误,如下所示:

void Application_Error(object sender, EventArgs e)
{
  // Code that runs when an unhandled error occurs

  // Get the exception object.
  Exception exc = Server.GetLastError();


  // For other kinds of errors give the user some information
  // but stay on the default page
  Response.Write("<h2>Global Page Error</h2>\n");
  Response.Write(
      "<p>" + exc.Message + "</p>\n");
  Response.Write("Return to the <a href='Default.aspx'>" +
      "Default Page</a>\n");
  // Clear the error from the server
  Server.ClearError();
}
在错误页面中:

 protected void Page_Load(object sender, EventArgs e)
{
    Exception err = Session["LastError"] as Exception;
    //Exception err = Server.GetLastError();
    if (err != null)
    {
        err = err.GetBaseException();
        lblErrorMsg.Text = err.Message;
        lblSource.Text = err.Source;
        lblInnerEx.Text = (err.InnerException != null) ? err.InnerException.ToString() : "";
        lblStackTrace.Text = err.StackTrace;
        Session["LastError"] = null;
    }
}

这个问题可能会给你一些答案:你能不能给我今晚的密码。不过,我确实提供了一个链接,可以帮助您自己找到答案。