Событие Application_error не запускается после публикации - PullRequest
0 голосов
/ 21 июля 2011

Я знаю, что об этом спрашивали много раз, но я не мог заставить вещи работать из этих сообщений.

Я реализовал метод Application_error в файле Global.asax, чтобы регистрировать и отправлять электронную почту для всех необработанных исключений,Это прекрасно работает при работе в Visual Studio, но как только я опубликую его на тестовом сервере, Application_event прекращает работу.В текстовый файл не вносятся записи журнала и электронное письмо не отправляется.

Файл PrecompiledApp.config присутствует в корневом каталоге вместе с App_global.asax.compiled, App_global.asax.dll в папке bin.Файл Global.asax отсутствует после публикации сайта.

Я попытался удалить файл PrecompiledApp.config, но он не работает.Я попытался добавить файл Global.asax в корневой каталог, но не работает.Я пытался с

   <customErrors mode="Off"  /> 

и

   <customErrors mode="On" defaultRedirect="Error Page.aspx" /> 

в файле web.config .... ничего не работает.

Я добавил строку в Page_load страницы:

    Response.Write("<br/>ApplicationInstance: " +  Context.ApplicationInstance.GetType().FullName);

Возвращает ApplicationInstance: ASP.global_asax, который должен быть возвращен согласно сообщению.Тогда почему событие не запускается?

Пожалуйста, помогите !!!

Спасибо !!!

** [Изменить] .... Я добавил строку кодав событии Session_start файла Global.asax, и это сработало.Это означает, что Global.asax успешно разворачивается.Но почему событие Application_error не выполняется в случае ошибки?Есть идеи?

Ответы [ 2 ]

1 голос
/ 27 ноября 2011

Если приложение встречается в методе Application_error, оно не выдает его, что создает впечатление, что метод не вызывается.

Я бы проверил, чтобы убедиться, что у вас есть адекватная обработка исключений в методе application_error.

0 голосов
/ 29 декабря 2013

Ниже код работает нормально после публикации в IIS.

Sub Application_Error (отправитель ByVal как объект, ByVal как объект EventArgs)

    If Context IsNot Nothing Then
        Context.ClearError()
        Response.Write("Application_Error" + "<br/><br/>")
        Response.Write("Error on Default Page")
    End If
End Sub
...