【问题标题】:Failed to find a valid digest in the 'integrity' attribute for resource in Blazor app未能在 Blazor 应用中的资源的“完整性”属性中找到有效的摘要
【发布时间】:2021-12-23 20:31:26
【问题描述】:

我有一个 Blazor 客户端/服务器应用程序,我已经开发了一段时间,到目前为止它运行良好。我突然开始收到这个错误

未能在“完整性”属性中找到有效的摘要 资源“https://mydomain.no/_framework/Faso.Blazor.SpinKit.dll” 具有计算的 SHA-256 完整性 '1UEuhA1KzEN0bQcoU0m1eL4WKcCIWHhPgoXydAJnO9w='。该资源已 被屏蔽了。

Failed to find a valid digest in the 'integrity' attribute for resource

我已尝试清理和重建。我尝试添加 Cors、设置文件夹权限和许多其他建议的解决方案,但无济于事。我在 VS 2022 和 Win Server 2016 中使用 Web 部署,.net core 5.0。

任何建议将不胜感激。

【问题讨论】:

  • 我知道这不是一个合适的解决方案,但对我来说,删除服务器上 wwwroot\_framework 目录中的所有 .br 和 .gz 文件解决了这个问题。所以这一定是文件的压缩版本有问题,而不是普通的 dll 文件(至少在我的情况下)
  • Paul 提出了一个重要的观点 - 确保服务器上的所有文件都得到更新,并且不会卡在某处的缓存中。
  • 老实说 - 在开发环境中,请禁用完整性检查。大大加快了整个过程

标签: .net-core blazor visual-studio-2022


【解决方案1】:

这确实是一个烦人的问题,我时不时地遇到这个错误。更新某些包后似乎会发生这种情况,并且构建过程无法为包选择新的 SHA。

您可以通过查找包含 SHA 的文件并将相关 dll 的 SHA 与错误消息中的 SHA 进行比较来验证问题是否存在。 该文件名为blazor.boot.json,在项目文件夹的obj 文件夹深处生成。 (我的在这里:obj\Release\net6.0\win-x86\PubTmp\Out\wwwroot\_framework

如果是这个问题,请试试这个:

  1. 关闭VS。
  2. 从您的所有项目中删除objbin 文件夹。 (网络项目可能就足够了,但嘿 - 不会受伤)
  3. 开始VS
  4. 重建解决方案。
  5. 再次尝试发布。

【讨论】:

  • 非常感谢。我尝试了所有这些,但再次部署后 SHA 不匹配。我将服务器上的 SHA 与错误消息进行了比较,它们也不匹配。
  • 谢谢米歇尔。我遇到了同样的问题并删除了 obj 文件夹并重建并部署/发布到服务器,然后一切正常。
  • @BjørnHellesylt,所以在按照步骤删除所有构建输出并重建后,它在您的本地计算机上再次生成了相同的旧 SHA?
  • @Paul 很高兴听到,如果对你有帮助,请考虑投票,谢谢。
  • @MichelJansson,不,它生成了不同的 SHA,但它们与新错误中的不匹配。
【解决方案2】:

我终于解决了我自己的问题!这个问题困扰了我好几个星期。

我已经尝试了这里和其他地方提到的所有东西,但都没有奏效。起作用的是使用我的 ftp 客户端(filezilla)并将传输类型从“自动”更改为“二进制”(传输>传输类型>二进制)。我在 VS2022 中没有看到这样做的选项,所以我想我现在会使用我的手动 ftp 客户端解决方案。

啊啊啊啊。

【讨论】:

    猜你喜欢
    • 2021-10-19
    • 2021-05-09
    • 2019-04-13
    • 2021-03-07
    • 2020-10-15
    • 1970-01-01
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    相关资源
    最近更新 更多