Роль файла Global.asax. Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание]
Роль файла Global.asax. Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание]ВикиЧтение
Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание]
Троелсен Эндрю
Содержание
Роль файла Global.asax
К этому моменту у вас может сложиться впечатление, что приложение ASP.NET представляет собой простой набор файлов *.аsрх и соответствующих Web-элементов управления. И хотя вы можете построить Web-приложение с помощью простого связывания нескольких Web-страниц, вам, скорее всего, хотелось бы иметь возможность взаимодействия с Web-приложением, как с чем-то цельным. Для этого в Web-приложение ASP.NET можно включить необязательный файл Global.asax, выбрав WebSite?Add New Item из меню (рис. 24.2).
Рис. 24.2. Добавление файла Global.
asax
В некотором смысле файл Global.asax в ASP.NET аналогичен традиционному файлу *.exe, поскольку представляет поведение Web-узла в среде выполнения. После добавления файла Global.asax в Web-проект вы обнаружите, что этот файл на самом деле представляет собой блок ‹script›, содержащий набор обработчиков событий.
‹%@ Application Language=»C#» %›
‹script runat=»server»›
void Application_Start(Object sender, EventArgs e) {
// Код, выполняемый при запуске приложения.
}
void Application_End(Object sender, EventArgs e) {
// Код, выполняемый при завершении приложения.
}
void Applicatioт_Error(Object sender, EventArgs e) {
// Код, выполняемый при появлении необработанной ошибки.
}
void Session_Start(Object sender, EventArgs e) {
// Код, выполняемый при открытии нового сеанса.
}
void Session_End(Object sender, EventArgs e) {
// Код, выполняемый при завершении сеанса.
}
‹/script›
Однако первое впечатление может оказаться обманчивым. В среде выполнении программный код этого блока ‹script› преобразуется в тип класса, получающийся из System.Web.HttpApplication. Если вы имеете опыт работы с ASP.NET 1.х, то вы, наверное, вспомните, что там файл с внешним кодом поддержки для Global.asax буквально определял класс, получающийся из HttpApplication.
Как уже было сказано, члены, определённые в Global.asax, содержатся в обработчиках событий, позволяющих взаимодействовать с событиями на уровне приложения (а также сеанса). Описания этих членов предлагаются в табл. 24.1.
Таблица 24.1. Обработчики событий Global.asax
Обработчик события Описание Аррlication_Start() Вызывается только при запуске Web-приложения, поэтому генерируется только один раз за все время выполнения Web-приложения. Является идеальным местом для определения данных уровня приложения, доступных в любой точке Web-приложения Application_End() Вызывается при завершении работы приложения, например, вследствие превышения времени ожидания для последнего пользователя или при завершении работы приложения вручную с помощью IIS Session_Start() Вызывается при регистрации нового пользователя в приложении.
Объект Global
Объект Global Этот объект содержит несколько методов и свойств, которые не принадлежат ни одному объекту (табл. 11.12 и 11.13). Для удобства их объединили в объект Global.Таблица 11.12. Свойства объекта Global Таблица 11.13. Методы объекта Global Для доступа к методам и функциям этого объектаУстановка размера файла, инициализация файла и разреженные файлы
Установка размера файла, инициализация файла и разреженные файлы
Функция SetEndOfFile позволяет переустановить размер файла, используя текущее значение указателя файла для определения его размера.
Возможно как расширение, так и усечение файла. В случае расширения файла
Роль ядра
Роль ядра Наша аналогия с процессами в жилом доме прекрасна для объяснения концепций синхронизации, но бесполезна при анализе одной очень важной проблемы. В доме у нас было много потоков, работающих одновременно. Однако в реальной жизненной ситуации обычно имеется
Роль разработчика
Роль разработчика Работа по реализации некоторого аспекта системы начинается тогда, когда для этого аспекта готовы все приемочные тесты. Разработчики выполняют приемочные тесты и убеждаются в том, что те не проходят. Затем они связывают приемочные тесты с системой и
Кому принадлежит доменное имя (вкладки General > Global Whois)
Кому принадлежит доменное имя (вкладки General > Global Whois)
В принципе, эту информацию можно получить на многих сайтах, которые занимаются регистрацией доменных имен.
Роль атрибутов CIL
Роль атрибутов CIL Во многих случаях директивы CIL сами по себе оказываются недостаточно информативными, чтобы дать исчерпывающее определение соответствующего типа .NET или его члена. Поэтому многие директивы CIL сопровождаются различными атрибутами CIL, сообщающими о том,
Роль DataSet
Роль DataSet Упрощенно говоря, DataSet является представлением внешних данных в памяти. Более точно, DataSet представляет собой тип класса, поддерживающий три внутренние строго типизованные коллекции (рис. 22.11). Рис. 22.11. «Анатомия» DataSetСвойство Tables объекта DataSet позволяет получить
Роль сервера
Роль сервера Работа сервера включает:* управление хранением данных базы данных и выделение дискового пространства;* управление всеми транзакциями, запущенными клиентами, гарантирование, что каждая получит и сохранит непротиворечивый образ постоянно хранимых данных,
4 РОЛЬ РУКОВОДИТЕЛЕЙ
4 РОЛЬ РУКОВОДИТЕЛЕЙ
Руководители принимают на себя организацию работ по документированию и осуществляют поддержку этих работ в стратегиях, стандартах, процедурах, распределении ресурсов и планах, которыми они определяются.
Эффективность выполнения руководящей роли
Роль классов
Роль классов Затратив немного времени на устранение абсурдных, но распространенных и вредных заблуждений, можно вернуться к рассмотрению центральных свойств классов и выяснить, в частности, почему они столь важны в объектной технологии.Для понимания ОО-подхода
Global Mobile Awards 2010: забавные номинанты Алексей Стародымов
Global Mobile Awards 2010: забавные номинанты Алексей Стародымов Не знаю, как уважаемые читатели, а я уже давно не реагирую на мероприятия «соревновательного» типа, в ходе которых участникам присуждаются какие-либо премии. Бытует мнение, что в наше время ничего за просто так на
Почему стартаперам не нужно сразу бежать за инвестициями в Sequoia Игорь Балк, управляющий директор Global Innovation Labs
Почему стартаперам не нужно сразу бежать за инвестициями в Sequoia
Игорь Балк, управляющий директор Global Innovation Labs
Опубликовано 18 февраля 2013В России государство пытается внедрять механизмы «инновационных лифтов».
В теории каждый из инновационных проектов должен проезжать
Венчурные инвестиции для стартапа без продаж и платящих клиентов? Вполне возможно Лев Самсонов, директор по развитию Global TechInnovations.
Как привлекать инвестиции в стартап Лев Самсонов, директор по развитию Global TechInnovations
Как привлекать инвестиции в стартап
Лев Самсонов, директор по развитию Global TechInnovations
Опубликовано 06 февраля 2013
Необходимость привлечения внешних денежных ресурсов в свой проект так или иначе возникает у большинства начинающих предпринимателей.
Почему основателям не стоит «бояться» впускать в свой стартап менторов Лев Самсонов, директор по развитию Global TechInnovations
Почему основателям не стоит «бояться» впускать в свой стартап менторов Лев Самсонов, директор по развитию Global TechInnovations Опубликовано 28 марта 2013 Подход к вложению средств в технологические стартапы западных инвесторов, конечно, сильно отличается о
Какова цель global.asax в asp.net
Объяснение глобальных событий asax
Application_Init: запускается при инициализации или первом вызове приложения. Он вызывается для всех экземпляров объекта HttpApplication.
Application_Disposed: запускается непосредственно перед уничтожением приложения. Это идеальное место для очистки ранее использованных ресурсов.
Application_Error: срабатывает, когда в приложении обнаруживается необработанное исключение.
Application_Start: запускается при создании первого экземпляра класса HttpApplication. Он позволяет создавать объекты, доступные для всех экземпляров HttpApplication.
Application_End: запускается, когда уничтожается последний экземпляр класса HttpApplication. Он запускается только один раз за время существования приложения.
Application_BeginRequest: запускается при получении запроса приложения. Это первое событие, запускаемое для запроса, который часто является запросом страницы (URL-адресом), вводимым пользователем.
Application_EndRequest: последнее событие, инициированное для запроса приложения.
Application_PreRequestHandlerExecute: запускается перед тем, как платформа страницы ASP.NET начинает выполнять обработчик событий, такой как страница или веб-служба.
Application_PostRequestHandlerExecute: запускается, когда платформа страницы ASP.NET завершает выполнение обработчика событий.
Applcation_PreSendRequestHeaders: запускается до того, как платформа страницы ASP.NET отправит HTTP-заголовки запрашивающему клиенту (браузеру).
Application_PreSendContent: запускается до того, как платформа страницы ASP.NET отправит контент запрашивающему клиенту (браузеру).
Application_AcquireRequestState: запускается, когда платформа страницы ASP.NET получает текущее состояние (состояние сеанса), связанное с текущим запросом.
Application_ReleaseRequestState: запускается, когда платформа страницы ASP.NET завершает выполнение всех обработчиков событий. Это приводит к тому, что все модули состояния сохраняют данные своего текущего состояния.
Application_ResolveRequestCache: запускается, когда платформа страницы ASP.NET завершает запрос авторизации.
Он позволяет модулям кеширования обслуживать запрос из кеша, минуя выполнение обработчика.
Application_UpdateRequestCache: запускается, когда платформа страницы ASP.NET завершает выполнение обработчика, чтобы позволить модулям кэширования хранить ответы, которые будут использоваться для обработки последующих запросов.
Application_AuthenticateRequest: срабатывает, когда модуль безопасности установил действительную идентификацию текущего пользователя. На этом этапе учетные данные пользователя были проверены.
Application_AuthorizeRequest: запускается, когда модуль безопасности проверяет, что пользователь может получить доступ к ресурсам.
Session_Start: запускается, когда новый пользователь посещает веб-сайт приложения.
Session_End: запускается, когда время сеанса пользователя истекает, завершается или он покидает веб-сайт приложения.
c# — Какова цель global.asax в asp.
netОбъяснение глобальных событий asax
Application_Init: Запускается при инициализации или первом вызове приложения. Он вызывается для всех экземпляров объекта HttpApplication.
Application_Disposed: Запускается непосредственно перед уничтожением приложения. Это идеальное место для очистки ранее использованных ресурсов.
Application_Error: Запускается, когда в приложении встречается необработанное исключение.
Application_Start: Запускается при создании первого экземпляра класса HttpApplication. Он позволяет создавать объекты, доступные всем экземплярам HttpApplication.
Application_End: Запускается при уничтожении последнего экземпляра класса HttpApplication. Он запускается только один раз за время жизни приложения.
Application_BeginRequest: Запускается при получении запроса приложения. Это первое событие, инициированное для запроса, который часто является запросом страницы (URL), который вводит пользователь.
Application_EndRequest: Последнее событие, инициированное для запроса приложения.
Application_PreRequestHandlerExecute: Инициируется до того, как платформа страниц ASP.NET начнет выполнение обработчика событий, такого как страница или веб-служба.
Application_PostRequestHandlerExecute: Запускается, когда платформа страницы ASP.NET завершает выполнение обработчика событий.
Applcation_PreSendRequestHeaders: Инициируется до того, как платформа страниц ASP.NET отправит заголовки HTTP запрашивающему клиенту (браузеру).
Application_PreSendContent: Инициируется до того, как платформа страниц ASP.NET отправит содержимое запрашивающему клиенту (браузеру).
Application_AcquireRequestState: Запускается, когда платформа страниц ASP.NET получает текущее состояние (состояние сеанса), связанное с текущим запросом.
Application_ReleaseRequestState: Запускается, когда платформа страниц ASP.
NET завершает выполнение всех обработчиков событий. Это приводит к тому, что все модули состояния сохраняют данные своего текущего состояния.
Application_ResolveRequestCache: Запускается, когда платформа страниц ASP.NET завершает запрос авторизации. Это позволяет модулям кэширования обслуживать запрос из кэша, минуя выполнение обработчика.
Application_UpdateRequestCache: Запускается, когда платформа страниц ASP.NET завершает выполнение обработчика, чтобы позволить модулям кэширования хранить ответы, которые будут использоваться для обработки последующих запросов.
Application_AuthenticateRequest: Запускается, когда модуль безопасности установил подлинность текущего пользователя. На этом этапе учетные данные пользователя подтверждены.
Application_AuthorizeRequest: Запускается, когда модуль безопасности подтверждает, что пользователь может получить доступ к ресурсам.
Session_Start: Запускается, когда новый пользователь посещает веб-сайт приложения.
Session_End: Инициируется, когда время сеанса пользователя истекает, заканчивается или он покидает веб-сайт приложения.
c# — Где находится файл Global.asax.cs?
спросил
Изменено 6 лет, 6 месяцев назад
Просмотрено 120 тысяч раз
Я использую VS 2008. Я создал новый проект веб-сайта Asp.net из File->New->Website->Asp.net Website.
Теперь я хочу добавить в проект файл Global.asax, а также файл .cs. Поэтому я щелкаю правой кнопкой мыши по проекту -> Добавить новый элемент-> Глобальный класс приложений. Затем я нажал на кнопку добавления.
Файл Global.asax был добавлен с содержимым, указанным в разделе
<%@ Application Language="C#" %>
<скрипт runat="сервер"%>
void Application_Start (отправитель объекта, EventArgs e)
{
// Код, который запускается при запуске приложения
}
void Application_End (отправитель объекта, EventArgs e)
{
// Код, который запускается при завершении работы приложения
}
void Application_Error (отправитель объекта, EventArgs e)
{
// Код, который запускается при возникновении необработанной ошибки
}
void Session_Start (отправитель объекта, EventArgs e)
{
// Код, который запускается при запуске нового сеанса
}
void Session_End (отправитель объекта, EventArgs e)
{
// Код, который запускается после завершения сеанса.
// Примечание. Событие Session_End возникает только тогда, когда установлен режим состояния сеанса.
// установлено значение InProc в файле Web.config. Если режим сеанса установлен на StateServer
// или SQLServer, событие не возникает.
}
скрипт>
Все в порядке. Но где находится файл Global.asax.cs?
Спасибо
- c#
- asp.net
- .net
- visual-studio-2008
- global-asax
1
Обычно не создается; вам нужно добавить его самостоятельно.
После добавления Global.asax по
- Щелкните правой кнопкой мыши свой веб-сайт -> Добавить новый элемент -> Глобальный класс приложений -> Добавить
Вам нужно добавить класс
- Щелкните правой кнопкой мыши App_Code -> Добавить новый элемент -> Класс -> назовите его Global.
cs -> Добавить
Наследуйте только что созданный System.Web.HttpApplication и скопируйте все созданные методы Global.asax в Global.cs , а также добавьте атрибут наследования в файл Global.asax.
Ваш Global.asax будет выглядеть так: —
<%@ Application Language="C#" Inherits="Global" %>
Ваш Global.cs в App_Code будет выглядеть так: —
public class Global: System.Web.HttpApplication
{
публичный глобальный ()
{
//
// TODO: добавить сюда логику конструктора
//
}
void Application_Start (отправитель объекта, EventArgs e)
{
// Код, который запускается при запуске приложения
}
/// Многие другие события, такие как запрос на начало... и т.д., и т.д.
}
3
Это потому, что вы создали веб-сайт вместо веб-приложения. Файлы cs/vb можно увидеть только в веб-приложении, но на веб-сайте у вас не может быть отдельного файла cs/vb .
// Примечание. Событие Session_End возникает только тогда, когда установлен режим состояния сеанса.
// установлено значение InProc в файле Web.config. Если режим сеанса установлен на StateServer
// или SQLServer, событие не возникает.
}
скрипт>
cs -> Добавить