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

IIS7部署的.NET MVC5站点加载JS文件偶发net::err_http2_protocol_error报错

IIS7部署.NET MVC5站点JS加载间歇性报net::err_http2_protocol_error修复方案

该问题由IIS7原生HTTP/2实现与静态资源传输规则的兼容性冲突导致,可按以下步骤依次排查修复:

  • 禁用IIS站点动态内容压缩
    进入IIS管理器选中目标站点,打开【压缩】功能页,取消勾选「启用动态内容压缩」,保存配置后重启站点。
    如果站点接入了CDN,同步关闭CDN侧的动态资源压缩规则,避免两端压缩逻辑冲突
  • 调整HTTP/2帧大小上限
    打开IIS配置编辑器,定位到 system.webServer/http2 节点,将maxFrameSize参数修改为16384,修改后执行iisreset命令生效。该参数默认值为4096,传输大体积JS文件时容易出现拆帧异常触发协议报错。
  • 固定MVC Bundle打包规则
    若使用.NET MVC5自带的Bundle静态资源打包功能,在App_Start/BundleConfig.cs中添加如下配置,避免打包逻辑动态调整导致的资源校验失败:
    // 强制启用打包优化,关闭动态调整
    BundleTable.EnableOptimizations = true;
    // 未使用CDN托管静态资源时添加此行
    BundleTable.Bundles.UseCdn = false;
    
  • 统一静态资源缓存头配置
    在站点web.config中添加如下配置,规范静态资源缓存规则:
    <system.webServer>
      <staticContent>
        <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" />
      </staticContent>
    </system.webServer>
    

临时验证方案:如果需要快速确认是否为HTTP/2兼容问题,可在IIS配置编辑器system.webServer/http2节点将enabled设为false,强制站点使用HTTP/1.1,重启后测试是否还会出现报错。

用户端报错表现参考:
用户控制台

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 10:33:03