У меня есть класс под названием Global
, производный от HttpApplication
.
Как ни странно, я вижу много методов внутри Global
, которые выглядят так:
void Application_Start(object sender, EventArgs e)
{
}
Код определенно выполняется внутри этого метода, поэтому метод вызывается откуда-то, но где? Методы не помечены как перегрузка?
Во-вторых, я унаследовал класс от Global
, назовем его GlobalFoo
.
Опять же, если я создам метод под названием Application_Start()
, он будет вызываться внутри моего производного класса, иначе ничего из Global
не будет вызываться, поэтому я мог бы также быть производным от пустого класса.
Кто-нибудь может дать совет? Мне не хватает какой-то фундаментальной части ASP.NET?
3 ответа
так что метод вызывается откуда-то, но где?
Эти функции вызываются из пула приложений (из каждого назначенного вами пула), чтобы сигнализировать о событиях запуска / завершения вашего приложения и помочь вам с инициализацией.
Каждый пул, назначенный для запуска вашего веб-приложения, выполняет эти функции.
Asp.net помогает вам создавать разные объекты / код , внешние или нет, которые могут работать вместе, и поэтому вы видите, что выполняется весь ваш зарегистрированный код . С его помощью можно создать несколько «запускающих» программ, которые придерживаются разных взглядов.
Этот является примером, этот модуль просто сам проверяет защищенный протокол. ... и вам не нужно ничего менять в своем коде, просто зарегистрируйте его.
IIS вызывает различные события Global.asax через фильтр asp.net isapi.
Возможно, эта статья поможет объяснить.
Файл Global.asax - это необязательный файл, используемый для объявления и обработки событий и объектов уровня приложения и сеанса для веб-сайта ASP.NET, работающего на веб-сервере IIS.
Некоторые из ключевых событий в этом файле:
- Application_Init: срабатывает при первой инициализации приложения.
- Application_Start: срабатывает при первом запуске приложения.
- Session_Start: срабатывает при первом запуске сеанса пользователя.
- Application_BeginRequest: срабатывает каждый раз, когда приходит новый запрос.
- Application_EndRequest: срабатывает при завершении работы приложения.
- Application_AuthenticateRequest: указывает, что запрос готов к аутентификации.
- Application_Error: срабатывает, когда в приложении возникает необработанная ошибка.
- Session_End: срабатывает всякий раз, когда одиночный сеанс пользователя заканчивается или истекает время ожидания.
- Application_End: срабатывает, когда приложение завершает работу или истекает время ожидания (обычно используется для логики очистки приложения).
Полный список событий Global.asax см. На странице "Global.asax Events ".
Похожие вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.