处理应用程序级错误

问题描述:

我有代码(它在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 

正如你指出的错误在第二大约出现一次,但有关错误空
是什么此代码错误?
谢谢。

问题是在这一行imo

while (myError.InnerException != null) 

你只写,如果有一个的InnerException错误的细节,但它并非总是如此

你也忘了打电话给

Server.ClearError(); 

在你处理结束(但我想这是一个选择)