Практическое руководство. Создание обработчиков событий ASP.NET уровня приложения
Обновлен: Ноябрь 2007
ASP.NET автоматически привязывает события приложения к методам-обработчикам событий в файле Global.asax, используя правила именования Application_event — например, Application_BeginRequest и Application_Error. Дополнительные сведения см. в разделе Общие сведения о жизненном цикле приложения ASP.NET для IIS 5.0 и 6.0.
В данном примере кода обрабатывается событие Error уровня приложения; информация об ошибке записывается в журнал системных событий. Событие Error происходит каждый раз, когда возникает ошибка приложения или необработанная ошибка на странице.
Создание обработчика событий ASP.NET уровня приложения
Если веб-узел еще не содержит файл Global.asax, создайте его в корневом каталоге узла.
Создайте метод-обработчик событий с именем, соответствующим шаблону 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