使用jQuery AJAX调用WebMethod时,不会触发ASP.NET 4.0 Custom IHttpModule

时间:2014-09-09 09:55:09

标签: jquery .net-4.0 webmethod httpmodule

我正在谷歌上搜索我的问题的解决方案,但我还没有找到它。

我正在将Web应用程序从.NET framework 3.5迁移到4.0,它大量使用标记为 [System.Web.Services.WebMethod(true)] 的方法,通过 jQuery调用$就()即可。 此外,我有一个自定义 HttpModule 来填充 CurrentPrincipal ,其中包含从http标头变量收到的用户信息。 更重要的是,基于.net 3.5的应用程序部署在带有集成模式应用程序池的IIS 7.0上,并具有以下关于自定义模块的配置:

<modules>
      <remove name="ScriptModule" />          
      <add name="MyHttpModule" preCondition="managedHandler" type="MyNamespace.MyHttpModule, MynameSpace, Version=1.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxx" />
      <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</modules>

<httpModules>
      <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add name="MyHttpModule" type="MyNamespace.MyHttpModule, MynameSpace, Version=1.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxx" />
</httpModules>

基于.NET 3.5框架的应用程序运行良好,并且对于所有请求,始终调用自定义HttpModule,无论是标准.net GET / POST还是AJAX GET / POST调用。

现在,在迁移的Web应用程序上,基于.net 4.0框架,我保留了相同的配置(将版本从3.5.0.0升级到4.0.0.0),但它不起作用。 Web服务器是相同的,具有IIS 7.0和具有集成模式的应用程序池。 自定义HttpModule在第一次请求主页时调用,但不在WebMethod请求中调用。 我也试图反转模块顺序而没有效果。

你有什么建议吗?

提前致谢!

0 个答案:

没有答案