J'ai un module HTTP personnalisé pour un site Web ASP.NET MVC3 que je chargé de web.config:
<system.web>
<httpModules>
<add name="MyModule" type="MySolution.Web.MyHttpModule, MySolution.Web" />
</httpModules>
</system.web>
Le module est chargé correctement lorsque j'exécute le site à partir du serveur Web VS (le point de rupture de ma méthode init est touché) mais lorsque je l'héberge dans IIS Il semble être ignoré (le Le point d'arrêt est manqué et la fonctionnalité du module est absente du site). Je l'ai essayé sur deux distincts IIS cases avec un résultat similaire.
Qu'est-ce que je fais mal? Existe-t-il un réglage que je dois scintiller enable IIS= pour charger des modules à partir d'un site Web.config?
J'ai compris cela peu de temps après avoir posé la question - IIS7 utilise un schéma différent pour le web.config. Le bon endroit pour charger un module est maintenant:
<system.webServer>
<modules>
<add name="MyModule" type="MySolution.Web.MyHttpModule, MySolution.Web" />
</modules>
</system.webServer>
7 ans plus tard: il n'est pas spécifique à la version IIS version, elle est spécifique au mode de pool d'applications: Classic contre intégré.
<system.webServer><!--for integrated mode-->
<modules>
<add name="modulename" type="blabla.modulenamehere" />
</modules>
</system.webServer>
<system.web><!--for classic mode-->
<httpModules>
<add name="modulename" type="blabla.modulenamehere" />
</httpModules>
</system.web>
J'ai le même problème. Ma solution consistait à supprimer d'abord le module, puis à re-l'ajouter à l'espace de noms System.webserver.
<system.webServer>
<modules>
<remove name="MyModule"/>
<add name="MyModule" type="MySolution.Web.MyHttpModule, MySolution.Web" />
</modules>
</system.webServer>
Cela peut être parce que nous déployons sur deux différents IIS serveurs. Un sur serveur 2003 (IIS 6) et un sur le serveur 2008 (IIS7 +). Ajout de l'ajout du module qui semblait le bloquer du chargement dans L'espace de noms. Je pourrais me tromper ici ...