ScriptResource.axd 禁止 POST 403

use*_*527 3 asp.net iis-7.5

我们的一个网站的开发版本遇到了一个奇怪的问题。通过事件触发页面回发时DropDownList OnChange,浏览器控制台中显示以下错误:

POST <URL here> 403 (Forbidden)
Uncaught #<Error>
Run Code Online (Sandbox Code Playgroud)

查看生成的 IIS 错误页面没有帮助。它表明以下内容:

Module  ManagedPipelineHandler
Notification    ExecuteRequestHandler
Handler PageHandlerFactory-Integrated-4.0
Error Code  0x00000000
Run Code Online (Sandbox Code Playgroud)

这是针对一个ScriptResource.axd. 现在有一个奇怪的部分:直到我们的其他开发人员开始发布该网站后,这个问题才开始发生。以前,我发布它没有任何问题。没有任何web.config变化(事实上,它与我们的产品相同web.config,运行完美)。我在网上搜索了有关为什么我们会遇到此问题的线索,它似乎主要与<handlers>中的部分<system.webServer><httpHandlers>中的部分相关<system.web>。相关部分如下:

<httpHandlers>
  <remove verb="*" path="*.asmx" />
  <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" />
</httpHandlers>

<handlers>
  <remove name="WebServiceHandlerFactory-Integrated" />
  <remove name="ScriptHandlerFactory" />
  <remove name="ScriptHandlerFactoryAppServices" />
  <remove name="ScriptResource" />
  <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</handlers>
Run Code Online (Sandbox Code Playgroud)

从我所看到的来看,这似乎与其他用户所说的对他们来说效果很好的内容相符。值得注意的一件有趣的事情是 403 Forbidden 似乎正在运行POST。我确实尝试POST在这两个位置添加为动词ScriptResource.axd,但这也不起作用。

该网站托管在 IIS 7.5 中,位于使用网络服务的应用程序池下。网络服务确实对网站的根文件夹具有完全控制权。

此时,我完全不知道是什么导致了我们奇怪的问题。

小智 9

我的主机使用 Plesk,升级服务器后我也遇到了这个问题。

将 Web 应用程序防火墙模式更改为仅关闭/检测后,此问题得到解决。

在此输入图像描述