2013-04-02 4 views
19

Просто потратил много времени, просеивая противоречивые советы по этой проблеме, и подумал, что я опубликую свое решение.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> 

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

НТН

+3

Вы должны разделить свой вопрос в 2-х частей: один вопрос и ваш ответ – cheesemacfly

+0

У вас не может быть TWO-типов в строке Fandango68

ответ

22

<system.web> для IIS 6 и ниже (в том числе Кассини), <system.webServer> для IIS 7 и выше. Я вообще ставить в обоих - на всякий случай - а затем добавить этот узел в <system.webServer>, чтобы он не блевать на избыточности:

<validation validateIntegratedModeConfiguration="false" /> 
+1

STILL does not work tho. – AgentFire

+0

это отличный лайнер! –