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

Blazor应用部署后出现资源integrity属性有效摘要查找失败错误

Blazor资源完整性校验报错排查方案

资源'https://mydomain.no/_framework/Faso.Blazor.SpinKit.dll'的'integrity'属性中未找到有效摘要,计算得到的SHA-256完整性值为'1UEuhA1KzEN0bQcoU0m1eL4WKcCIWHhPgoXydAJnO9w=',该资源已被拦截。

问题本质

该报错是Blazor WebAssembly的子资源完整性校验机制触发拦截:发布阶段生成的blazor.boot.json文件中记录的Faso.Blazor.SpinKit.dll的SHA256哈希值,与浏览器实际从服务器获取到的该文件的哈希值不匹配,所以阻止了资源加载。

排查解决步骤
  • 校验文件传输一致性
    先停止服务器上的站点,删除站点部署目录下的所有文件,本地VS清理解决方案后删除bin、obj文件夹,重新生成发布包,使用Web Deploy全量部署(不要使用增量部署),避免文件锁或传输不完整导致的文件内容不一致。
    可通过PowerShell分别校验本地发布包和服务器部署目录下该dll的哈希,确认是否一致:
    Get-FileHash -Path "Faso.Blazor.SpinKit.dll路径" -Algorithm SHA256 | Select-Object Hash
    
  • 排除IIS静态压缩影响
    WinServer 2016的IIS默认可能对.dll后缀静态资源启用Gzip/Brotli压缩,压缩后的文件哈希与原始哈希不匹配,可在站点web.config中添加如下配置禁用对应类型压缩:
    <system.webServer>
      <httpCompression>
        <staticTypes>
          <remove mimeType="application/octet-stream" />
          <add mimeType="application/octet-stream" enabled="false" />
        </staticTypes>
      </httpCompression>
      <staticContent>
        <remove fileExtension=".dll" />
        <mimeMap fileExtension=".dll" mimeType="application/octet-stream" />
      </staticContent>
    </system.webServer>
    
  • 检查中间层内容修改
    如果站点前部署了CDN、WAF、反向代理等中间服务,先清空所有缓存,关闭资源自动压缩、内容注入等规则后重试,中间层对静态资源的修改会直接导致哈希校验失败。
  • 强制重新生成完整性哈希
    在项目的.csproj文件中添加如下配置,禁用Blazor boot资源缓存和默认压缩,强制发布时重新计算所有资源的完整性哈希:
    <PropertyGroup>
      <BlazorCacheBootResources>false</BlazorCacheBootResources>
      <BlazorEnableCompression>false</BlazorEnableCompression>
    </PropertyGroup>
    
  • 校验运行环境版本匹配
    确认服务器上安装的.NET 5 托管捆绑包版本,与本地编译用的.NET 5 SDK版本完全一致,版本差异可能导致编译输出的dll哈希不匹配。

内容的提问来源于stack exchange,提问作者Bjørn Hellesylt

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:27:01