Обрабатывать ошибки уровня приложения - PullRequest
0 голосов
/ 03 апреля 2012

У меня есть код (он найден в Интернете) для обработки ошибок приложения.Я написал в журнале событий.

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

"

Как вы заметили, ошибка возникает примерно раз в секунду.Но информация об ошибке пустая.
Что не так с этим кодом?
Спасибо.

1 Ответ

0 голосов
/ 12 апреля 2012

Проблема в этой строке IMO

while (myError.InnerException != null)

Вы пишете подробности ошибки, только если есть неисключительная ситуация, но это не всегда верно

Вы также забыли позвонить

Server.ClearError();

В конце вашей обработки (но я думаю, что это выбор)

...