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

问题描述 投票:1回答:1

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

我正在将Web应用程序从.NET framework 3.5迁移到4.0,它广泛使用通过jQuery $ .ajax()调用的标记为[System.Web.Services.WebMethod(true)]的方法。此外,我有一个自定义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请求中调用。我也试图反转模块顺序没有任何影响。

你有什么建议吗?

提前致谢!

jquery .net-4.0 webmethod httpmodule
1个回答
1
投票

5年后,我遇到了同样的问题。我在[WebMethod]文件中有一堆.aspx属性,将它们移到单独的.asmx文件中对我来说是个窍门。

© www.soinside.com 2019 - 2024. All rights reserved.