Поделиться через


Практическое руководство. Создание обработчиков событий ASP.NET уровня приложения

Обновлен: Ноябрь 2007

ASP.NET автоматически привязывает события приложения к методам-обработчикам событий в файле Global.asax, используя правила именования Application_event — например, Application_BeginRequest и Application_Error. Дополнительные сведения см. в разделе Общие сведения о жизненном цикле приложения ASP.NET для IIS 5.0 и 6.0.

В данном примере кода обрабатывается событие Error уровня приложения; информация об ошибке записывается в журнал системных событий. Событие Error происходит каждый раз, когда возникает ошибка приложения или необработанная ошибка на странице.

Создание обработчика событий ASP.NET уровня приложения

  1. Если веб-узел еще не содержит файл Global.asax, создайте его в корневом каталоге узла.

  2. Создайте метод-обработчик событий с именем, соответствующим шаблону Application_event. Например, для обработки события Error в приложении создайте обработчик с именем Application_Error, который будет принимать параметр Object и параметр EventArgs.

Пример

В следующем примере кода продемонстрирован обработчик событий для события Error в файле Global.asax. Обработчик в данном примере вызывается каждый раз при возникновении необработанного исключения в любом месте приложения. Если исключение перехватывается в блоке try/catch или событием Error объекта страницы, то приложение не выдаст ошибку Error.

Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
    ' check to see if the ASPNETApplication log exists
    If Not System.Diagnostics.EventLog. _
            SourceExists("ASPNETApplication") Then
        System.Diagnostics.EventLog. _ 
            CreateEventSource("ASPNETApplication", "Application")
    End If
    System.Diagnostics.EventLog. _
        WriteEntry("ASPNETApplication", 
        Server.GetLastError().Message)
End Sub
void Application_Error(Object sender, EventArgs e)
{
    if(!System.Diagnostics.EventLog.SourceExists
            ("ASPNETApplication"))
    {
        System.Diagnostics.EventLog.CreateEventSource
           ("ASPNETApplication", "Application");
    }
    System.Diagnostics.EventLog.WriteEntry
        ("ASPNETApplication", 
        Server.GetLastError().Message);
}

Код вносит запись в журнал системных событий. Вначале он проверяет, существует ли в журнале запись с именем ASPNETApplication; если нет, то код создает ее. Код получает сообщение об ошибке, связанное с данной ошибкой, вызывая метод GetLastError, а затем записывает сообщение об ошибке в журнал.

Безопасность

Данный пример кода требует, чтобы приложение имело разрешение на доступ к системному журналу событий. Дополнительные сведения об использовании журнала системных событий см. в разделе Практическое руководство. Запись в журнал событий приложения.

См. также

Основные понятия

Общие сведения о жизненном цикле приложения ASP.NET для IIS 5.0 и 6.0

Другие ресурсы

Ошибка обработки на страницах ASP.NET и в приложениях