Когда использовать Application_Start vs Init в Global.asax?
Мне интересно, при каких обстоятельствах я должен вводить код инициализации приложения в Application_Start()
vs Init()
в файле Global.asax
?
Различие между двумя не кажется мне очень очевидным, кроме Application_start
сначала вызывается, а затем Init()
.
- Почему я должен использовать один над другим?
- Разве это действительно имеет значение?
- Какие изменения в состоянии приложения
между этими двумя событиями?
До сих пор единственный реальный указатель, который я могу найти, состоит в том, что IHttpModule
имеет только метод Init()
, поэтому, если то, что я делаю, может в какой-то момент лучше подходить для реализации IHttpModule
Я должен использовать Init()
метод Global.asax
, если не что иное для согласованности.
Ответы
Ответ 1
Из Документы MSDN:
Методы Application_Start и Application_End - это специальные методы, которые не представляют события HttpApplication. ASP.NET называет их один раз для срока службы домена приложения, а не для каждого экземпляра HttpApplication.
Init:
Вызывается один раз для каждого экземпляра HttpApplication в конце концов модули были созданы.
UPDATE: если вам нужно убедиться, что определенный код вызывается только один раз в приложении. жизненный цикл, Application_Start - лучшее решение. Примеры: настройка log4net?
Ответ 2
Да
Между ними существуют различия. Событие Application_Start() вызывается только один раз, в то время как метод Init() вызывается каждый раз, когда создается экземпляр приложения.