ASP.Net WebForms迁移至WS2019后外部访问缺失ScriptResource.axd问题
AWS WAF规则误拦截
WAF可能把.axd后缀的资源请求判定为可疑流量(比如触发了XSS、SQL注入类的规则),直接拦截或篡改了响应内容,导致页面里的脚本标签丢失。去查WAF的访问日志,确认是否存在针对ScriptResource.axd或WebResource.axd的拦截记录,调整规则放行这两个路径的请求。AWS ALB的缓存/压缩配置异常
ALB的缓存策略可能缓存了不完整的页面版本,或者压缩配置损坏了脚本资源的响应结构,导致浏览器无法正常解析加载。试试临时关闭ALB的缓存,或者调整压缩规则,确保.axd资源的响应能完整传输到客户端。ASP.NET脚本优化设置冲突
.NET Framework 4.8自带脚本合并、压缩功能(比如EnableScriptCombine配置项),本地调试时debug="true"会关闭合并,部署到服务器后debug="false"会开启合并,但ALB/WAF对合并后的资源处理出现异常。打开web.config,检查<compilation>节点的debug属性,以及<system.web.extensions>下的脚本优化配置,先临时关闭脚本合并验证问题是否消失。ALB路径转发规则错误
ALB目标组的路径重写规则可能修改了.axd资源的请求路径,导致ASP.NET无法识别请求,没法返回对应的脚本资源。检查ALB的转发规则,确保ScriptResource.axd和WebResource.axd的请求路径被完整转发到后端IIS服务器。IIS输出缓存/URL重写干扰
外部请求经ALB携带的请求头与本地不同,可能触发了IIS的输出缓存或URL重写规则,导致脚本资源的输出被截断。去IIS里检查站点的输出缓存设置,以及URL重写规则,确保.axd资源不受这些规则影响。
内容的提问来源于stack exchange,提问作者Julien Petitbon

