Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемАфанасий Маклаков
1 проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – Модули HTTP, фильтры, события приложения - Global.asax Из цикла лекций «Технологии разработки Internet-приложений» для студентов 4-го курса кафедры Компьютерных технологий физического факультета Донецкого национального университета
2 Компонент конвейера HTTP: HTTP modules Модули HTTP – это классы, реализующие интерфейс IHttpModule и обрабатывающие события времени выполнения (Runtime). HTTP-модули – это механизм, который позволяет выполнять различные действия на любом этапе жизненного цикла страницы или приложения. В HTTP-модуле можно подписаться на любое событие жизненного цикла и обрабатывать его, реализуя при этом какую-то свою логику. Обычно, модули используют как фильтры приложения. Каждый модуль запускается методом Init. В этом методе каждый HTTP-модуль подписывается на события жизненного цикла приложения ( BeginRequest, AuthenticateRequest … – всего 26). После этих действий все загруженные модули HTTP остаются в памяти и выгружаются только тогда, когда выгружается домен приложения. При каждом цикле обработки запроса отрабатывают те или иные события, на которые подписаны различные HTTP-модули. Именно в этот момент можно добавить необходимую логику. Для того чтобы создать собственные HTTP-модули необходимо создать класс, реализующий интерфейс IHttpModule. В рамках этого интерфейса присутствуют два метода – Init() и Dispose(). Последний метод необходим для того, чтобы в нужный момент очистить занимаемые ресурсы. Обычно, этот метод остаётся пустым. Метод Init() вызывается в момент загрузки HTTP-модуля и имеет параметр типа HttpApplication. Этот параметр позволяет подписаться на события жизненного цикла обработки запроса. Метод модуля Init() срабатывает только один раз – при создании домена приложения.
3 Создание модуля При добавлении HTTP-модуля необходимо его зарегистрировать (подключить), т.е в файле web.config указать его имя и имя класса, который его реализует. Модули, зарегистрированные в элементе globalModules файла ApplicationHost.config, обладают глобальной областью действия для всех веб-приложений. Модуль управляемого кода можно задать как файл класса в папке App_Code приложения. Также можно создать модуль как проект библиотеки классов, скомпилировать его и добавить в папку Bin приложения. Пример кода HTTP-модуля: public class HttpModule1 : IHttpModule { public void Init(HttpApplication app) { app.BeginRequest +=... } public void Dispose() { /// } Регистрация модуля
4 События приложения в Global.asax Файл Global.asax, или файл приложения ASP.NET, является дополнительным файлом, содержащим код для отклика на события уровня приложения и уровня сеанса, создаваемые приложением ASP.NET или модулями HTTP. Файл Global.asax добавляется в корневую папку приложения ASP.NET. Во время выполнения этот файл анализируется и компилируется в динамически создаваемый класс.NET Framework, производный от базового класса HttpApplication. Среда ASP.NET настраивается таким образом, что любой непосредственный URL-запрос к файлу Global.asax автоматически отклоняется, а внешние пользователи не могут загружать или просматривать находящийся в нем код. Данный файл не является обязательным. Он создается только в том случае, если необходима обработка событий приложения или сеанса.
5 Часто используемые события При добавлении средой Visual Studio файла Global.asax в него, обычно, встраиваются наиболее часто используемые события уровня приложения: Application_Start – возникает когда создается экземпляр класса HttpApplication. Session_Start – возникает в начале каждого сеанса, здесь можно инициализировать переменные сеанса. Application_BeginRequest – инициируется в начале каждого отдельного запроса. Как правило, обработка запроса производится классом Page (Страница) Application_EndRequest – инициируется в конце запроса. Session_End – инициируется в конце каждого сеанса. Application_End – инициируется перед удалением экземпляра HttpApplication. Application_Error – инициируется при любом необработанном исключении в приложении. Подробнее см. в Обработка ошибок.ppt.Обработка ошибок.ppt
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.