【问题标题】:custom 404 page with asp.net C# 3.5 on IIS6在 IIS6 上使用 asp.net C# 3.5 的自定义 404 页面
【发布时间】:2011-03-15 07:04:39
【问题描述】:

对于错误处理,我有几行代码用于捕获 global.asax 中的每个错误 :void Application_Error(object sender, EventArgs e)函数的内容是这样的:

try
    {
       Exception objErr = Server.GetLastError().GetBaseException();

       if (!(objErr is HttpException))
       {
           shop.BLL.Utility.Errorlog.WriteError(objErr, "Global.asax caught an Exception");
       }
       else
       {
           HttpException hex = (HttpException)objErr;
           if (hex.ErrorCode == 404)
               Response.Redirect("404.aspx?msg=" + hex.Message);
           else
           {
               shop.BLL.Utility.Errorlog.WriteError(hex, "Global.asax caught an HttpException code: " + hex.ErrorCode);
           }
       }

    }
    catch { }

    Server.ClearError();

现在事情是这样的:当我转到不存在的blabla.aspx 时,它最终出现在shop.BLL.Utility.Errorlog.WriteError(hex, "Global.asax caught an HttpException code: " + hex.ErrorCode); 线上,并且错误代码的值为-2147467259

为什么不是 404?

【问题讨论】:

    标签: c# asp.net iis-6 http-status-code-404


    【解决方案1】:

    我认为你应该检查GetHttpCode() 方法。

     HttpException hex = (HttpException)objErr;
     if (hex.GetHttpCode() == 404)
         Response.Redirect("404.aspx?msg=" + hex.Message);
    

    【讨论】:

      【解决方案2】:

      找不到的页面没有抛出异常,404错误是一个Http响应码。如果您尝试为 404 处理设置自定义错误页面,您可以使用

      <customErrors>
      

      在您的 web.config 中添加标签

      看看这些文章...

      http://aspnetresources.com/articles/CustomErrorPageshttp://www.asp.net/hosting/tutorials/displaying-a-custom-error-page-cs

      戴夫

      【讨论】:

        【解决方案3】:

        来自MSDN docs

        ErrorCode 获取错误的 HRESULT。 (继承自ExternalException)。

        GetHttpCode() 获取HTTP响应状态码返回给客户端。

        HRESULT 0x80004005 表示Generic Error

        【讨论】:

          【解决方案4】:

          我认为您不想使用 ErrorCode - 那是用于内部错误。尝试在您的 HttpException 对象上使用 GetHttpCode()。这应该会返回您正在寻找的 404。

          if (hex.GetHttpCode() == 404)
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-06-18
            • 1970-01-01
            • 1970-01-01
            • 2010-12-15
            • 1970-01-01
            • 2015-11-06
            • 2021-10-15
            相关资源
            最近更新 更多