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

MAC版Visual Studio .Net 6 Blazor部署报错:integrity校验失败

解决Blazor WASM资源完整性校验失败问题

针对你遇到的Failed to find a valid digest in the 'integrity' attribute错误,以下是几个可行的排查和解决步骤:

  • 检查IIS压缩配置
    即使项目中禁用了Blazor的压缩,IIS自带的动态/静态压缩可能会自动修改资源内容,导致哈希不匹配。

    • 打开IIS管理器,找到你的站点,进入「压缩」功能,取消勾选「启用动态内容压缩」和「启用静态内容压缩」。
    • 也可以通过站点的web.config添加精细配置,禁用Blazor相关资源的压缩:
      <system.webServer>
        <urlCompression doStaticCompression="false" doDynamicCompression="false" />
        <httpCompression>
          <staticTypes>
            <remove mimeType="application/wasm" />
            <remove mimeType="application/octet-stream" />
          </staticTypes>
        </httpCompression>
      </system.webServer>
      
  • 验证资源传输完整性

    • 发布后先在本地运行发布文件夹中的Server项目,确认本地访问无错误,排除发布过程本身的问题。
    • 上传服务器时,确保FTP/SFTP工具使用二进制传输模式,防止.dll、.wasm这类二进制资源被文本模式修改。
    • 对比本地和服务器上的文件哈希:在Mac上用shasum -a 256 <文件名>,服务器上如果是Linux环境用同样命令,Windows环境可以用certutil -hashfile <文件名> SHA256,确认文件完全一致。
  • 临时禁用完整性校验(仅排查用)
    如果暂时找不到根本原因,可以临时关闭校验来验证站点功能,在Client项目的Program.cs中添加:

    builder.Services.AddBlazorWebAssemblyOptions(options =>
    {
        options.DisableAutoStaticWebAssetsIntegrityCheck = true;
    });
    

    注意:此方法会关闭资源篡改防护,不建议用于生产环境,找到问题后务必恢复。

  • 确认发布配置正确性

    • 发布时选择Release模式,确保目标框架和服务器上安装的.NET Core版本一致。
    • 发布勾选「删除目标文件夹中的现有文件」,避免旧版本资源残留导致冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 13:50:21