升级IdentityModel从v6到v7后为何出现IDX20803错误?
问题根源
升级至Microsoft.IdentityModel.Tokens和System.IdentityModel.Tokens.Jwt 7.0.0版本后出现的错误,核心原因是:
- 7.0.0版本彻底移除了内部的
Microsoft.IdentityModel.Json命名空间,包括其中的JsonConvert类型,官方已改用System.Text.Json作为默认JSON处理库。 - 你的代码或依赖的第三方组件仍在调用旧的
JsonConvert方法,导致类型加载失败,进而引发OIDC配置获取失败(IDX20803错误是类型加载失败的连锁反应)。
解决方案
- 替换旧JSON调用:检查项目代码,移除所有
using Microsoft.IdentityModel.Json;引用,将JsonConvert.SerializeObject/DeserializeObject等调用替换为System.Text.Json.JsonSerializer的对应方法。例如:// 旧代码 var json = JsonConvert.SerializeObject(obj); var model = JsonConvert.DeserializeObject<MyModel>(json); // 新代码 var json = JsonSerializer.Serialize(obj); var model = JsonSerializer.Deserialize<MyModel>(json); - 检查依赖兼容性:确认项目中其他第三方库是否依赖旧版本的IdentityModel组件,若有则升级这些库到支持7.0.0的版本;如果暂时无法升级第三方库,可考虑回退
Microsoft.IdentityModel.Tokens和System.IdentityModel.Tokens.Jwt到6.x稳定版本(如6.32.3)。 - 清理NuGet缓存:执行以下命令清理缓存并重新还原包,避免版本冲突残留:
dotnet nuget locals all --clear dotnet restore
内容的提问来源于stack exchange,提问作者Mohammad Miras
相关产品推荐
相关产品推荐

