WebResource.axd使用IIS7在ASP.Net Post Backs中给出403错误
时间:2020-03-06 14:37:29 来源:igfitidea点击:
我在Windows 2008服务器上安装了ASP.Net网站,默认情况下使用IIS7. 该网站似乎工作正常,但是我表格上的帖子不起作用。经过几个小时的调试,我意识到当我手动尝试在浏览器中点击WebResource.axd文件时(例如,在地址栏中键入http://www.domain.com/WebResource.axd),我得到了HTTP 403错误(访问被拒绝)。
我不太确定下一步该怎么看,而且我的Windows 2008安全知识有限。我该如何授予对该文件的访问权限?
解决方案
检查IIS日志,他们应该提供一个状态代码,其中包含有关该错误的更多详细信息。另外,回发中的错误的性质是什么?
这是我执行回发时遇到的错误:
WebForm_PostBackOptions未定义。
据我所知,该函数包含在WebResource.axd文件中,这使我在地址栏中尝试了该功能,从而了解了403错误...
不确定那是哪一个,但可能与IIS中的http压缩有关。还要检查该文件是否可供IIS用户访问。
导航到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,看看是否已在每个文件的顶部添加了<clear />。如果这样做了,那么我们将在web.config文件中包括add部分,该部分遵守applicationHosting.config文件中指定的处理程序/模块的顺序。