2012-04-03 124 views
0

我有代碼(它在Internet中找到)來處理應用程序錯誤。我在事件日誌中寫道。處理應用程序級錯誤

void Application_Error(object sender, EventArgs e) 
     { 
      Exception myError = null; 

      if (HttpContext.Current.Server.GetLastError() != null) 
      { 
       string eventLog = "MySite"; 
       string eventSource = "www.mysite.com"; 
       string myErrorMessage = ""; 

       myError = Server.GetLastError(); 

       while (myError.InnerException != null) 
       { 
        myErrorMessage += "Message\r\n" + 
         myError.Message.ToString() + "\r\n\r\n"; 
        myErrorMessage += "Source\r\n" + 
         myError.Source + "\r\n\r\n"; 
        myErrorMessage += "Target site\r\n" + 
         myError.TargetSite.ToString() + "\r\n\r\n"; 
        myErrorMessage += "Stack trace\r\n" + 
         myError.StackTrace + "\r\n\r\n"; 
        myErrorMessage += "ToString()\r\n\r\n" + 
         myError.ToString(); 

        myError = myError.InnerException; 
       } 

       if (EventLog.SourceExists(eventSource)) 
       { 

        EventLog myLog = new EventLog(eventLog); 
        myLog.Source = eventSource; 


        myLog.WriteEntry("An error occurred in the Web application " 
        + eventSource + "\r\n\r\n" + myErrorMessage, 
         EventLogEntryType.Error); 
       } 
      } 
     } 

這是從事件日誌行:。

Type Date   Time  Source   Event    Category 
Error 03.04.2012 16:44:41 www.mysite.com 0 "An error occurred in the Web application www.mysite.com 

" 
Error 03.04.2012 16:43:31 www.mysite.com 0 "An error occurred in the Web application www.mysite.com 

" 
Error 03.04.2012 16:42:56 www.mysite.com 0 "An error occurred in the Web application www.mysite.com 

" 
Error 03.04.2012 16:42:56 www.mysite.com 0 "An error occurred in the Web application www.mysite.com 

" 
Error 03.04.2012 16:42:54 www.mysite.com 0 "An error occurred in the Web application www.mysite.com 

" 
Error 03.04.2012 16:37:27 www.mysite.com 0 "An error occurred in the Web application www.mysite.com 

正如你指出的錯誤在第二大約出現一次,但有關錯誤空
是什麼此代碼錯誤?
謝謝。

回答

0

問題是在這一行imo

while (myError.InnerException != null) 

你只寫,如果有一個的InnerException錯誤的細節,但它並非總是如此

你也忘了打電話給

Server.ClearError(); 

在你處理結束(但我想這是一個選擇)

相關問題