在使用IIS7进行ASP.Net回发时,WebResource.axd会出现403错误

4
我在 Windows 2008 服务器上安装了一个 ASP.Net 网站,该网站默认使用 IIS7。网站似乎工作正常,但我的表单回传不起作用。调试几个小时后,我发现当我手动尝试在浏览器中访问 WebResource.axd 文件(例如,我在地址栏中键入http://www.domain.com/WebResource.axd),我得到 HTTP 403 错误(拒绝访问)。我不太确定接下来该从哪里查找并且我的 Windows 2008 安全知识有限。我该如何授权访问该文件?

在我的情况下,问题似乎是由于 asp.net 工作帐户缺少此操作所需的任何权限。当我将程序集从 bin 移动到 GAC 时,它开始工作了。 - xr280xr
7个回答

11

如果您正在使用Plesk面板或Web应用程序防火墙(ModSecurity)处于激活状态,请禁用“OWASP_CRS / LEAKAGE / ERRORS_IIS”和“OWASP_CRS / POLICY / EXT_RESTRICTED”安全规则。


1
如果您使用的是PLESK托管,则这正是您想要的!谢谢@suha_kskbs!! - Rodney Ellis
1
嗨,我有iis和plesk。禁用owasp_crs后,一切都完美无缺。谢谢。 - Cesar BA
1
谢谢,这也解决了我的问题“Uncaught ReferenceError: Sys未定义”和“Uncaught ReferenceError: WebForm_DoPostBackWithOptions在<anonymous>:1:1处未定义”。 - Pablo V
1
太好了!在运行OWASP的IIS(ModSecurity 2.9)上运行的Plesk应用程序中有效。 - navigator
1
太棒了,对我来说运行正常。 - Cesar BA
显示剩余3条评论

3
对于使用 Plesk 控制面板的托管公司,您可以关闭 Web 应用程序防火墙(WAF),但由于 WAF 的目的是帮助保护您的网站免受各种攻击,因此您应该仅停用导致问题的特定规则 ID。在我的情况下,我需要允许 .axd 文件在我的网站上(例如 Scriptresource.axd 和 WebResource.axd)。
1. 通过打开 Plesk WAF 页面上的“ModSecurity 日志文件”来确定正在违反的特定规则 ID。
2. 在日志文件中搜索 403 访问被拒绝消息,然后查找类似于 [id "942440"] 的子字符串。这是被违反的规则 ID。
3. 通过在 Plesk WAF 页面上的“关闭安全规则”部分输入 ID 号码来关闭适用于此问题的“安全规则”。在本示例中,您只需在文本框中键入数字“920440”。

enter image description here


2
导航到您的IIS配置文件夹。通常位于:c:\windows\system32\inetsrv\config,并打开applicationHost.config文件。然后在文件中导航到<handlers>部分,并检查以下行是否存在:
<add name="AssemblyResourceLoader-Integrated" path="WebResource.axd" verb="GET,DEBUG" type="System.Web.Handlers.AssemblyResourceLoader" preCondition="integratedMode" />

如果您正在运行集成模式,检查是否指定了GET动词。

如果您正在运行经典管道模式,则应存在此行。

<add name="AXD-ISAPI-2.0" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />

如果一切似乎正常,那么请查看您的web.config中的Handlers和Modules部分,看看是否在每个顶部添加了。如果是,则需要在您的web.config文件中包含add部分,并按照applicationHosting.config文件中指定的处理程序/模块顺序进行设置。

1

不太确定,但可能与IIS中的http压缩有关。还请检查文件是否对IIS用户可访问。


0

请检查您的IIS日志——它们应该提供有关错误的更详细信息的状态代码。此外,在回传时出现了什么样的错误呢?


0

在进行Postback时,我遇到了以下错误:

WebForm_PostBackOptions未定义。

据我所知,该函数包含在WebResource.axd文件中,这促使我尝试在地址栏中输入它,结果就出现了403错误...


0

防火墙设置出现问题。 请求在防火墙中被阻止。请联系服务器管理员更改配置。 我们找到了解决方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接