Подтвердить что ты не робот

HttpModule не вызывается в .NET 4.5

Просто потратил много времени, просеивая противоречивые советы по этой проблеме, и думал, что отправлю решение.

Моя среда -.NET 4.5, Visual Studio 2012, работающая над приложением MVC 4. Я создал Http-модуль, как и в прошлом, и добавил его в Web.config следующим образом:

<configuration>
 <system.web>
  <httpModules>
   <add name="MyModule" type="Services.MyModule, Services" />
  </httpModules>
 </system.web>
</configuration>

Однако приложение никогда не вызывало модуль Init(). В конце концов, я нашел совет, что модули должны быть внутри <system.webServer>, а элемент с именем <modules> вместо <httpModules>, например:

<configuration>
 <system.webServer>
  <modules>
   <add name="MyModule" type="MyModule" type="Services.MyModule, Services" />
  </modules>
 </system.webServer>
</configuration>

Перезапустите приложение, и оно называется Init(), как и ожидалось. FWIW, страница с направлением находится здесь: http://msdn.microsoft.com/en-us/library/ms227673.aspx

НТН

4b9b3361

Ответ 1

<system.web> для IIS 6 и ниже (включая Cassini), <system.webServer> для IIS 7 и выше. Обычно я вставляю оба - на всякий случай - а затем добавляем этот node в <system.webServer>, чтобы он не перекрывал избыточность:

<validation validateIntegratedModeConfiguration="false" />