在 Azure 上部署后,无法加载文件或程序集 'System.IdentityModel.Tokens.Jwt'

22
我的 Web 应用在本地主机上运行良好,但是当我将其发布到 Azure 时,出现以下错误:
“无法加载文件或程序集 'System.IdentityModel.Tokens.Jwt' 或其某个依赖项。位于找到的程序集清单定义与程序集引用不匹配。(HRESULT 异常代码:0x80131040)”
在本地主机上可以正常工作。
我正在使用 4.5 框架,并且在 web.config 文件中也定义了它。我尝试在 NuGet 管理器中重新安装它,但我得到了如下信息:
“包'System.IdentityModel.Tokens.Jwt.4.0.2.206221351'已经存在于项目'project1'中。”
我还找不到这个程序集在引用文件夹中的位置。 这是我第一次遇到这种问题。
你建议我该怎么做?
致意, Sandi
5个回答

34

通过这种方式,我可以解决在Azure上部署后与“无法加载文件或程序集'System.IdentityModel.Tokens.Jwt'”相关的问题。但是我遇到了另一个问题: System.Private.CoreLib: 在执行函数EnsureClientNotePageThumbnail时出现异常。System.Security.Principal.Windows: 此平台不支持Windows Principal功能。 - Tang Thanh Tam

15

我已经解决了。我通过Nuget包管理器更新了System.IdentityModel.Tokens.Jwt引用,并且它再次正常工作。

谢谢!


2
我通过NuGet包获取了这个引用,但是我收到了一个类似但不同的错误信息:无法加载文件或程序集“System.IdentityModel.Tokens.Jwt,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”或其某个依赖项。所定位的程序集清单定义与程序集引用不匹配。(HRESULT异常:0x80131040) - Nathan Tregillus
在我的情况下,我已经安装了一个网络项目。 - kplshrm7

1

解决方法很简单。只需进入web config并找到出现错误的包。检查web.config中提到的版本,并将其与已安装在项目中的参考NuGet包进行比较。使两者相似即可。

Nuget包版本

在我的情况下,我安装了3.10.10.0,但在web config中显示不同。我将其更改为3.10.10.0,一切正常运行。

web.config版本


0

我遇到了同样的问题。我通过在我的安装项目中选择“刷新依赖项”来解决它。我认为这是一个bug,因为System.IdentityModel.Tokens.Jwt程序集位于程序文件目标文件夹中,并且具有符合规范的版本。 如果你不是在使用VS,也许你可以将这个问题与你自己的开发环境联系起来。


-1

我不得不将.NET Framework回滚到4.5.1版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接