Запутался в global.asax? - PullRequest
       6

Запутался в global.asax?

6 голосов
/ 12 октября 2010

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

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

void Application_Start(object sender, EventArgs e)
{
}

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

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

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

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

Ответы [ 3 ]

1 голос
/ 12 октября 2010

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

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

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

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

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

0 голосов
/ 12 октября 2010

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

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

0 голосов
/ 12 октября 2010

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

...