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

.NET 6 Web API加载Microsoft.IdentityModel.Tokens及JWT运行时错误排查

问题分析与解决方法

一、原问题:无法加载Microsoft.IdentityModel.Tokens程序集(版本6.29.0.0)

针对仅开发环境正常、其他环境加载失败的情况,排查方向如下:

  • 检查发布目录依赖完整性
    登录问题环境服务器,查看发布目录下是否存在Microsoft.IdentityModel.Tokens.dll和System.IdentityModel.Tokens.Jwt.dll,且版本为6.29.0.0。若缺失,重新发布时确保勾选“包含所有依赖项”,或在.csproj中对这两个包添加PrivateAssets="none",强制发布时包含依赖文件。

  • 禁用GAC全局程序集缓存加载
    若服务器GAC中存在旧版本的Microsoft.IdentityModel.Tokens,会优先加载GAC中的程序集导致版本不匹配。在项目的.csproj文件中添加以下配置:

    <PropertyGroup>
      <DisableGac>true</DisableGac>
    </PropertyGroup>
    

    重新发布后验证问题是否解决。

  • 添加程序集绑定重定向
    虽然.NET 6默认不依赖绑定重定向,但环境中存在多版本冲突时可尝试配置。在项目的runtimeconfig.template.json中添加以下内容:

    {
      "runtimeOptions": {
        "assemblyBinding": {
          "dependencies": [
            {
              "name": "Microsoft.IdentityModel.Tokens",
              "publicKeyToken": "31bf3856ad364e35",
              "version": "6.29.0.0"
            }
          ]
        }
      }
    }
    

二、更新后新问题:System.IdentityModel.Tokens.Jwt.JsonExtensions类型初始化异常

针对统一Nuget版本后出现的类型初始化错误,尝试以下方案:

  • 严格匹配IdentityModel相关包版本
    确保Microsoft.IdentityModel.Tokens和System.IdentityModel.Tokens.Jwt的版本完全一致,这两个包依赖耦合度极高,版本不匹配会导致底层类型初始化失败。卸载现有包后,重新安装相同版本的两个包。

  • 匹配Newtonsoft.Json的兼容版本
    Microsoft.IdentityModel.Tokens 6.29.0版本要求Newtonsoft.Json >=13.0.1,之前尝试的10-12版本不在兼容范围内,需安装13.0.1及以上的稳定版本。

  • 清理冲突的Newtonsoft.Json版本
    检查发布目录下是否存在多个版本的Newtonsoft.Json.dll,若有则全部删除后重新发布,确保只保留指定版本的文件。也可在.csproj中添加以下配置强制统一版本:

    <PackageReference Include="Newtonsoft.Json" Version="13.0.3">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
    </PackageReference>
    
  • 排查Json配置干扰
    检查Program.cs/Startup.cs中是否有自定义的Newtonsoft.Json配置(如修改JsonSerializerSettings),暂时注释相关配置代码,验证是否因配置错误导致类型初始化失败。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 00:52:53