Мне интересно, при каких обстоятельствах я должен вводить код инициализации приложения в Application_Start()
против Init()
в моем Global.asax
файлах?Когда использовать Application_Start vs Init в Global.asax?
Различие между двумя не кажется мне очень очевидным, кроме Application_start
сначала вызывается, затем Init()
.
- Почему я должен использовать один над другим?
- Действительно ли это имеет значение?
- Какие изменения в состоянии приложения между двумя событиями?
До сих пор единственным реальным указателем я могу найти то, что IHttpModule
имеется только Init()
метод, так что если то, что я делаю, может в какой-то момент лучше подходит для реализации IHttpModule
я должен использовать метод Init()
из Global.asax
, если ничего другого для согласованности.
Бит следующего вопроса: когда создан экземпляр HttpApplication? Я принимаю каждый раз, когда рабочий процесс перезапускается, и он будет содержать один экземпляр для каждого рабочего потока? – roryf
@roryf - asp.net поддерживает пул экземпляров приложений, которые могут быть повторно использованы. Под обложками запросы обслуживаются с использованием пула потоков CLR, а входящие запросы будут поставлены в очередь за пределами определенного порога. Я сомневаюсь, что они инициализируют пул экземпляров приложения до этого порогового уровня, поскольку большинство сайтов не будут видеть такой трафик. Я подозреваю, что они создают пул с небольшим количеством экземпляров, а затем увеличивают размер пула по мере роста спроса. –