У меня есть класс под названием Global, производный от HttpApplication.

Как ни странно, я вижу много методов внутри Global, которые выглядят так:

void Application_Start(object sender, EventArgs e)
{
}

Код определенно выполняется внутри этого метода, поэтому метод вызывается откуда-то, но где? Методы не помечены как перегрузка?

Во-вторых, я унаследовал класс от Global, назовем его GlobalFoo.

Опять же, если я создам метод под названием Application_Start(), он будет вызываться внутри моего производного класса, иначе ничего из Global не будет вызываться, поэтому я мог бы также быть производным от пустого класса.

Кто-нибудь может дать совет? Мне не хватает какой-то фундаментальной части ASP.NET?

7
maxp 12 Окт 2010 в 15:58

3 ответа

Лучший ответ

так что метод вызывается откуда-то, но где?

Эти функции вызываются из пула приложений (из каждого назначенного вами пула), чтобы сигнализировать о событиях запуска / завершения вашего приложения и помочь вам с инициализацией.

Каждый пул, назначенный для запуска вашего веб-приложения, выполняет эти функции.

Asp.net помогает вам создавать разные объекты / код , внешние или нет, которые могут работать вместе, и поэтому вы видите, что выполняется весь ваш зарегистрированный код . С его помощью можно создать несколько «запускающих» программ, которые придерживаются разных взглядов.

Этот является примером, этот модуль просто сам проверяет защищенный протокол. ... и вам не нужно ничего менять в своем коде, просто зарегистрируйте его.

2
Aristos 12 Окт 2010 в 16:17

IIS вызывает различные события Global.asax через фильтр asp.net isapi.

Возможно, эта статья поможет объяснить.

0
Oded 12 Окт 2010 в 16:06

Файл 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 ".

-1
Bobby Borszich 12 Окт 2010 в 16:04
Меня не волнуют сами события, я не понимаю, где и как их называют
 – 
maxp
12 Окт 2010 в 16:06