2013-04-02 19 views
19

Spędziłem dużo czasu przeglądając sprzeczne porady dotyczące tego problemu i pomyślałem, że opublikuję moje rozwiązanie.HttpModule nie wywoływane w .NET 4.5

Moje środowisko to .NET 4.5, Visual Studio 2012, działające na aplikacji MVC 4. I stworzył modułu HTTP jak zrobiłem w przeszłości, i dodaje go do Web.config tak:

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

Jednak nigdy aplikacja nazywany modułu Init(). W końcu znalazłem informacje, że moduły powinny być zamiast wewnątrz <system.webServer> oraz element o nazwie <modules> zamiast <httpModules>, tak:

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

Ponownie uruchomiono aplikację, a to nazywa init(), jak oczekiwano. FWIW, strona z kierunkiem jest tutaj: http://msdn.microsoft.com/en-us/library/ms227673.aspx

HTH

+3

Należy podzielić pytanie na 2 części: jedno pytanie i odpowiedź – cheesemacfly

+0

Nie możesz mieć DWÓCH "typów" w linii Fandango68

Odpowiedz

22

<system.web> jest IIS 6 i poniżej (w tym Cassini) <system.webServer> jest IIS 7 i powyżej. I zazwyczaj umieścić w obie - na wszelki wypadek - a następnie dodać ten węzeł do <system.webServer> więc nie barf na redundancji:

<validation validateIntegratedModeConfiguration="false" /> 
+1

STILL nie działa. – AgentFire

+0

to świetny jeden liniowiec! –