You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core出现net::ERR_HTTP2_PROTOCOL_ERROR 206问题求助

针对net::ERR_HTTP2_PROTOCOL_ERROR 206问题的解决方案

1. 确认Nginx HTTP/2禁用配置是否真正生效

  • 检查Nginx站点或主配置文件,确保listen指令无http2参数,正确的HTTPS监听配置示例:
    listen 443 ssl;
    # 移除任何包含 http2 的监听配置,比如 listen 443 ssl http2;
    
  • 重启Nginx后,用命令行验证:curl -v https://example.com/Img/xxx.jpg,查看输出中的HTTP版本,确认是HTTP/1.1而非HTTP/2。若仍为HTTP/2,检查Nginx错误日志,确认配置文件是否被正确加载。

2. 修复静态资源的部分请求异常

从响应头来看,请求的是文件单字节片段(32510-32510),虽数值匹配但可能触发浏览器HTTP2协议校验问题,可尝试两种配置:

  • 禁止静态资源的部分请求,强制返回完整内容:
    location ~* \.(js|css|jpg|jpeg|png|gif)$ {
        if ($http_range) {
            return 200;
        }
        # 保留原有root、expires等配置
    }
    
  • 确保Nginx正确转发Range相关请求头至后端ASP.NET:
    proxy_set_header Range $http_range;
    proxy_set_header If-Range $http_if_range;
    
    避免Nginx修改或丢失这些头,导致后端返回异常部分内容。

3. 清除浏览器端HTTP2连接缓存

即使Nginx禁用HTTP2,浏览器可能复用旧连接:

  • 用Ctrl+Shift+R强制刷新页面,清除缓存;
  • 关闭所有浏览器窗口后重启,销毁旧连接;
  • 可临时在Nginx配置中添加强制关闭连接的头:
    server {
        # 保留已有配置
        add_header Connection "close";
    }
    

4. 排查Windows Server 2012 R2系统层面干扰

Windows Server 2012 R2对HTTP2支持有限,可能存在第三方组件干扰:

  • 检查服务器上的防火墙、杀毒软件或其他代理工具,这类软件可能强制启用HTTP2;
  • 绕过Nginx直接访问后端ASP.NET服务器的静态资源,确认是否仍出现206状态码异常,定位问题是否在Nginx转发环节。

内容的提问来源于stack exchange,提问作者Oris Sin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 22:23:08