Как определяется порядок выполнения для HttpModules? - PullRequest
33 голосов
/ 11 марта 2010

Предположим, что и FirstModule, и SecondModule обрабатывают событие Application_BeginRequest. Будет ли он выполняться в порядке, определенном в файле web.config?

<httpModules>
  <add type="MyApp.FirstModule, MyApp" name="FirstModule"/>
  <add type="MyApp.SecondModule, MyApp" name="SecondModule"/>
  <add type="OtherApp.OtherModule, OtherApp" name="OtherModule"/>
</httpModules>

Существуют ли другие способы указания заказа?

Ответы [ 2 ]

35 голосов
/ 11 марта 2010

Согласно этому сообщению на форуме , HttpModules выполняются в том порядке, в котором они были зарегистрированы. Это имеет смысл для меня, потому что в противном случае директивы <clear> и <remove> также не будут работать должным образом, например при использовании так:

<httpModules> 
   <clear/>
   <add... />
</httpModules>
0 голосов
/ 11 марта 2010

Я не думаю, что вы можете гарантировать или указать порядок, в котором будут работать http-модули. Если SecondModule зависит от FirstModule, может быть лучше просто объединить их функциональность в 1 httpmodule.

...