使用jQuery AJAX调用WebMethod时,不会触发ASP.NET 4.0 Custom IHttpModule
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用jQuery AJAX调用WebMethod时,不会触发ASP.NET 4.0 Custom IHttpModule相关的知识,希望对你有一定的参考价值。
我正在谷歌上搜索我的问题的解决方案,但我还没有找到它。
我正在将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请求中调用。我也试图反转模块顺序没有任何影响。
你有什么建议吗?
提前致谢!
5年后,我遇到了同样的问题。我在[WebMethod]
文件中有一堆.aspx
属性,将它们移到单独的.asmx
文件中对我来说是个窍门。
以上是关于使用jQuery AJAX调用WebMethod时,不会触发ASP.NET 4.0 Custom IHttpModule的主要内容,如果未能解决你的问题,请参考以下文章
使用 jquery ajax 在 ascx 页面中调用 webmethod
使用 jQuery AJAX“401(未经授权)”的 ASP.NET 调用 WebMethod
在对 WebMethod 的 jQuery AJAX 调用中获取空响应,但 Web 方法返回 JSON
使用 jQuery Ajax 将参数传递给 WebMethod