IIS does not load custom HTTP module from web.config
I figured this out shortly after I asked the question - IIS7 uses a different schema for the web.config. The correct place to load a module is now:
<system.webServer>
<modules>
<add name="MyModule" type="MySolution.Web.MyHttpModule, MySolution.Web" />
</modules>
</system.webServer>
7 years later: It is not specific to the IIS version, it is specific to the application pool mode: classic versus integrated.
<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>
I have a similar problem. My Solution involved removing the Module first and then re-adding it to the system.webServer namespace.
<system.webServer>
<modules>
<remove name="MyModule"/>
<add name="MyModule" type="MySolution.Web.MyHttpModule, MySolution.Web" />
</modules>
</system.webServer>
This may be because we deploy to two different IIS servers. one on server 2003 (iis 6) and one on server 2008 (iis7+). So adding the module to seemed to block it from loading in the namespace. I could be wrong here...