ARR重写后.axd资源返回404错误的技术求助
IIS ARR高可用环境下.axd资源404问题求助
环境概况
- 基于ARR搭建IIS高可用环境:2台ARR服务器、2台IIS服务器,所有服务器均运行Windows Server 2019系统及IIS 10.0
- 环境整体运行正常,但所有.axd资源通过ARR访问时返回404错误,绕过ARR直接访问IIS则返回200,导致页面AJAX、ReportBuilder元素无法加载
日志对比分析
通过ARR访问的请求日志:
2023-08-22 16:10:50 192.168.24.5 GET /WebResource.axd d=lq0PviHnSOFiLL9A9_OGEXaQ7vrP7owj6Gsil0FilogN4XCpuO-ZyR0rHKUEu10SOhO7ChgFq7EcMmy0hf-PVMStIfo8U-QYx43ikiPtIVpdwvD60NrAzxZxcyX-bTPZmF1AUOhi6o5gGfj6aur9LD7VZWW7J7XhXLdmtI9kU5k1&t=636692481600000000 443 - 192.168.30.110 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/116.0.0.0+Safari/537.36 https://domainhub.domain.com/QuestAfExtClient 404 0 2 26
直接访问IIS的请求日志:
2023-08-22 16:17:30 192.168.24.8 GET /WebResource.axd d=lq0PviHnSOFiLL9A9_OGEXaQ7vrP7owj6Gsil0FilogN4XCpuO-ZyR0rHKUEu10SOhO7ChgFq7EcMmy0hf-PVMStIfo8U-QYx43ikiPtIVpdwvD60NrAzxZxcyX-bTPZmF1AUOhi6o5gGfj6aur9LD7VZWW7J7XhXLdmtI9kU5k1&t=636692481600000000 443 DOMAIN\user 192.168.30.110 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/116.0.0.0+Safari/537.36 https://domainhub.domain.com/QuestAfExtClient 200 0 0 11
注:两者请求URL几乎完全一致,仅ARR日志缺少用户身份信息字段。
已尝试的无效方案
搜索到的多数解决方案建议在URL重写模块中跳过.axd文件,但此方法在当前环境中无效。推测原因是.axd资源需要像其他请求一样转发至服务器场,而非在ARR本地处理。
当前ARR核心配置信息
URL重写规则(applicationHost.config)
<globalRules> <clear /> <rule name="HTTPS Redirection" enabled="true" patternSyntax="Wildcard" stopProcessing="true"> <match url="*" negate="false" /> <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> <add input="{HTTPS}" pattern="off" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="false" /> </rule> <rule name="ARR Route to Farm" enabled="true" patternSyntax="Wildcard" stopProcessing="true"> <match url="*" /> <action type="Rewrite" url="https://DomainIIS/{R:0}" appendQueryString="false" /> </rule> </globalRules>
WebFarm配置(applicationHost.config)
<webFarm name="DomainIIS" enabled="true"> <server address="IIS-01-M.domain.com" enabled="true"> <applicationRequestRouting weight="100" /> </server> <server address="IIS-02-M.domain.com" enabled="true"> <applicationRequestRouting weight="1" /> </server> <applicationRequestRouting> <protocol includePortInXForwardedFor="false" minResponseBuffer="0"> <cache enabled="false" queryStringHandling="Preserve" validationInterval="00:00:00" /> </protocol> <healthCheck url="http://iis.domain.com" interval="00:00:05" timeout="00:00:05" statusCodeMatch="200" minServers="1" /> <affinity useCookie="true" /> <loadBalancing /> </applicationRequestRouting> </webFarm>
需求
寻求可行的解决方法,使.axd资源可正常通过ARR访问。
内容的提问来源于stack exchange,提问作者JulioQc
相关产品推荐
相关产品推荐

