我在 Windows 2008 服务器上安装了一个 ASP.Net 网站,该网站默认使用 IIS7。网站似乎工作正常,但我的表单回传不起作用。调试几个小时后,我发现当我手动尝试在浏览器中访问 WebResource.axd 文件(例如,我在地址栏中键入http://www.domain.com/WebResource.axd),我得到 HTTP 403 错误(拒绝访问)。我不太确定接下来该从哪里查找并且我的 Windows 2008 安全知识有限。我该如何授权访问该文件?
如果您正在使用Plesk面板或Web应用程序防火墙(ModSecurity)处于激活状态,请禁用“OWASP_CRS / LEAKAGE / ERRORS_IIS”和“OWASP_CRS / POLICY / EXT_RESTRICTED”安全规则。
<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" />
不太确定,但可能与IIS中的http压缩有关。还请检查文件是否对IIS用户可访问。
请检查您的IIS日志——它们应该提供有关错误的更详细信息的状态代码。此外,在回传时出现了什么样的错误呢?
在进行Postback时,我遇到了以下错误:
WebForm_PostBackOptions未定义。
据我所知,该函数包含在WebResource.axd文件中,这促使我尝试在地址栏中输入它,结果就出现了403错误...
防火墙设置出现问题。 请求在防火墙中被阻止。请联系服务器管理员更改配置。 我们找到了解决方案。