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

Visual Studio 2010

Обновлен: Ноябрь 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.

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, а затем записывает сообщение об ошибке в журнал.

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

Показ: