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

迁移ASP Core项目到.NET6运行时出现MissingMethodException如何解决?

问题原因

该错误属于典型的依赖包跨版本API不兼容问题:
你使用的IdentityServer4.AccessTokenValidation 3.0.1仅适配4.x版本的IdentityModel,而你当前引用的IdentityModel 5.2.0属于大版本升级,底层已发生破坏性变更:IdentityModel.Client.DiscoveryEndpoint.ParseUrl(System.String)方法在5.x版本中已被移除/重构。
编译阶段能正常通过是因为NuGet仅做了版本号引用合法性校验,不会检查具体API是否存在,运行时加载高版本IdentityModel程序集后找不到对应方法,因此抛出MissingMethodException。

解决方案

有两种可行的修复方式:

  • 方案一:降级IdentityModel版本
    将IdentityModel的版本回退到最新的4.x稳定版(例如4.6.1),该版本和你当前引用的IdentityServer4.AccessTokenValidation 3.0.1、IdentityModel.AspNetCore.OAuth2Introspection 4.0.1完全兼容,修改包引用后重新还原NuGet包、构建项目即可解决问题。
  • 方案二:替换废弃的验证包
    IdentityServer4.AccessTokenValidation已经停止官方维护,不再适配.NET6及更高版本的运行时。如果你需要保留高版本IdentityModel,可以废弃该包,改用.NET6原生的Microsoft.AspNetCore.Authentication.JwtBearer包实现JWT校验,搭配最新版的IdentityModel.AspNetCore.OAuth2Introspection实现令牌内检逻辑,适配.NET6的原生认证体系。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:15:05