Когда использовать 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() вызывается каждый раз, когда создается экземпляр приложения.