只是花了很多时间筛选出关于这个问题的矛盾建议,并以为我会发布我的解决方案。
我的环境是.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
HTH