Этот обработчик события записывает нижний колонтитул в нижней части страницы, ставя дату и время создания страницы. Поскольку он реагирует на событие Application.EndRequest, он выполняется каждый раз, когда страница запрашивается после выполнения всего кода обработки события в этой странице.

Как и в случае с Web-формами, вы можете также разделять содержимое файла global.asax на два файла: файл разметки и файл скрытого кода. Однако, в силу того, что для файлов global.asax не предусмотрена какая-либо поверхность проектирования, разделение не требуется. Visual Studio не позволяет создавать файл global.asax с отдельным классом скрытого кода.

Файл global.asax является необязательным файлом, однако Web-приложение может иметь не более одного файла global.asax, и он должен храниться в корневом каталоге приложения, а не в подкаталоге. Чтобы добавить файл global.asax в проект, выберите в меню Website (Web-сайт) команду Add New Item (Добавить новый элемент) и затем шаблон Global Application Class. Когда Visual Studio добавит файл global.asax, он будет включать пустые обработчики событий для большинства наиболее часто используемых событий приложений. Вам просто будет необходимо вставить свой код в соответствующий метод.

Следует отметить, что обработчики событий приложений присоединяются не так, как обычные события элементов управления. Обработчик события приложения обычно присоединяется с помощью распознаваемого имени метода. Например, если вы создадите защищенный метод с именем Application_OnEndRequest(), ASP.NET автоматически вызовет этот метод при возникновении события Application.EndRequest.

ASP.NET создает пул объектов приложения при первой загрузке вашего домена приложения, и использует его для обслуживания каждого запроса. Этот пул может иметь различные размеры, в зависимости от системы и количества доступных потоков, но обычно он варьируется в пределах 1-100 экземпляров. Каждый запрос получает эксклюзивный доступ к одному из этих объектов приложения, и когда работа с запросом завершается, объект используется повторно. На разных стадиях обработки приложения ASP.NET вызывает соответствующий метод, запускающий ваш код. Естественно, если ваши методы имеют неверное имя, ваша реализация не будет вызвана, и ваш код будет попросту проигнорирован.

На заметку! Глобальный класс приложения, используемый файлом global.asax, никогда не должен изменять свое состояние. Объясняется это тем, что объекты приложения используются для различных запросов по мере того, как они становятся доступными. Если вы зададите значение в переменной экземпляра в одном запросе, оно может вновь возникнуть в другом запросе. Однако это контролировать невозможно, как и то, какой запрос становится данным экземпляром объекта приложения. Чтобы обойти эту проблему, не используйте переменные экземпляра, если только они не являются статическими (об этом будет рассказано в главе 6).

События приложения

Вы можете обработать два типа событий в файле global.asax:

предыдущая    следующая страница   оглавление

208

Hosted by uCoz