1. 程式人生 > >asp.net中自定義錯誤處理頁面

asp.net中自定義錯誤處理頁面

兩種方法均為全站出錯處理
方法一:
1、新增Web.config, <system.web></system.web>中新增<customErrors mode="On"

defaultRedirect="ApplicationErroy.aspx" ></customErrors>節點,
2、新增錯誤處理頁面:ApplicationErroy.aspx呼叫下面的方法:
private void DealErroy()
     {
         HttpException erroy = new HttpException();
         string strCode = erroy.ErrorCode.ToString();
         string strMsg = erroy.Message;
         erroy.HelpLink = "sss";
         Response.Write("ErrorCode:" + strCode + "<br>");
         Response.Write("Message:" + strMsg + "<br>");
         Response.Write("HelpLink:" + erroy.HelpLink + "<br>");
         Response.Write("Source:" + erroy.Source + "<br>");
         Response.Write("TargetSite:" + erroy.TargetSite + "<br>");
         Response.Write("InnerException:" + erroy.InnerException + "<br>");
         Response.Write("StackTrace:" + erroy.StackTrace + "<br>");
         Response.Write("GetHtmlErrorMessage:" + erroy.GetHtmlErrorMessage() + "<br>");
         Response.Write("erroy.GetHttpCode().ToString():" + erroy.GetHttpCode().ToString() +

"<br>");
         Response.Write("erroy.Data.ToString()::" + erroy.Data.ToString() + "<br>");
     }
這種方法不能完整地顯示錯誤資訊;
方法二:
1、新增Web.config, <system.web></system.web>中新增<customErrors mode="On"

defaultRedirect="ApplicationErroy.aspx" ></customErrors>節點,
2、新增Global.asax檔案,找到Application_Error事件,加入以下程式碼:
     Exception erroy = Server.GetLastError();
         string err = "出錯頁面是:" + Request.Url.ToString() + "<br>";
         err += "異常資訊:" + erroy.Message + "<br>";
         err += "Source:" + erroy.Source + "<br>";
         err += "StackTrace:" + erroy.StackTrace + "<br>";
         Server.ClearError();
         Application["erroy"] = err;
2、新增錯誤處理頁面:ApplicationErroy.aspx 加入以下程式碼;
    Response.Write(Application["erroy"].ToString());
這種方法能完整地顯示錯誤資訊,
最好的辦辦法還是兩種方法一起用最好!

另:web.config中也可以把
<error statusCode="403" redirect="NoAccess.htm" />//訪問被禁止
<error statusCode="404" redirect="FileNotFound.htm" />//找不到頁面
新增進去

http錯誤程式碼含義:   
   "100"    :    Continue     
   "101"    :    witching    Protocols     
   "200"    :    OK     
   "201"    :    Created     
   "202"    :    Accepted     
   "203"    :    Non-Authoritative    Information     
   "204"    :    No    Content     
   "205"    :    Reset    Content     
   "206"    :    Partial    Content     
   "300"    :    Multiple    Choices     
   "301"    :    Moved    Permanently     
   "302"    :    Found     
   "303"    :    See    Other     
   "304"    :    Not    Modified     
   "305"    :    Use    Proxy     
   "307"    :    Temporary    Redirect     
   "400"    :    Bad    Request     
   "401"    :    Unauthorized     
   "402"    :    Payment    Required     
   "403"    :    Forbidden     
   "404"    :    Not    Found     
   "405"    :    Method    Not    Allowed     
   "406"    :    Not    Acceptable     
   "407"    :    Proxy    Authentication    Required     
   "408"    :    Request    Time-out     
   "409"    :    Conflict     
   "410"    :    Gone     
   "411"    :    Length    Required     
   "412"    :    Precondition    Failed     
   "413"    :    Request    Entity    Too    Large     
   "414"    :    Request-URI    Too    Large     
   "415"    :    Unsupported    Media    Type     
   "416"    :    Requested    range    not    satisfiable     
   "417"    :    Expectation    Failed     
   "500"    :    Internal    Server    Error     
   "501"    :    Not    Implemented     
   "502"    :    Bad    Gateway     
   "503"    :    Service    Unavailable     
   "504"    :    Gateway    Time-out     
   "505"    :    HTTP    Version    not    supported