Когда использовать запуск приложения против Init в глобальном масштабе.асакс?


мне интересно, при каких обстоятельствах я должен помещать код инициализации приложения в Application_Start() vs Init() в своем ?

различие между ними не кажется мне очень очевидным, кроме Application_start сначала вызывается, затем Init().

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

пока единственный реальный указатель, который я могу найти, это IHttpModule только Init() метод, так что если то, что я делаю, может в какой-то момент быть лучше подходит для реализации IHttpModule Я должен использовать Init() метод Global.asax, если ничего другого на непротиворечивость.

2 72

2 ответа:

с MSDN docs:

методы Application_Start и Application_End являются специальными методами, которые не представляют события HttpApplication. ASP.NET вызывает их один раз за время существования домена приложения, а не для каждого экземпляра HttpApplication.

Init:

под названием один раз для каждого экземпляра HttpApplication класс В конце концов модули создан.

Update: если вам нужно убедиться, что определенный код вызывается только один раз в приложении. жизненный цикл, Application_Start является лучшим решением. Примеры: настройка log4net?

да

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