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

IdentityServer4添加AddDeveloperSigningCredential报错:找不到CreateUniqueId方法

解决IdentityServer4中AddDeveloperSigningCredential()抛出的MissingMethodException问题

这个问题我之前碰到好几个朋友都遇到过,核心原因是IdentityServer4 和 IdentityModel 两个NuGet包的版本不兼容——你调用的IdentityModel.CryptoRandom.CreateUniqueId(Int32)方法,在你当前安装的IdentityModel版本里要么被移除了,要么方法签名变了,而IdentityServer4的版本还在依赖这个旧的方法签名,所以就抛出了找不到方法的异常。

下面是具体的解决步骤:

  • 第一步:检查并核对包版本
    打开你的NuGet包管理器,查看IdentityServer4和IdentityModel的版本号。通常来说,这两个包的大版本号需要保持一致(比如IdentityServer4用3.x,IdentityModel也得是3.x系列;2.x对应2.x),版本不匹配就容易出现这类兼容性问题。

  • 第二步:统一包版本
    你有两种方式来修复版本不兼容的问题:

    1. 通过NuGet控制台重装匹配的版本
      先卸载现有包,再安装对应版本的IdentityServer4(IdentityModel会自动安装匹配的版本,不用单独操作):
      Uninstall-Package IdentityServer4
      Uninstall-Package IdentityModel
      Install-Package IdentityServer4 -Version 你需要的版本号
      
      比如如果跟着老教程做,教程用的是IdentityServer4 2.5.0,那直接装这个版本就好,对应的IdentityModel会自动适配。
    2. 手动修改.csproj文件指定版本
      打开项目的.csproj文件,找到两个包的引用行,手动设置一致的兼容版本,比如:
      <PackageReference Include="IdentityServer4" Version="3.1.4" />
      <PackageReference Include="IdentityModel" Version="3.10.10" />
      
      (注意:这里的版本号只是示例,你可以根据IdentityServer4的官方兼容逻辑选择合适的版本组合)
  • 第三步:验证修复效果
    版本统一后,重新运行项目,AddDeveloperSigningCredential()就能正常工作了,它会自动生成开发环境用的临时签名密钥,同时也能解决你之前遇到的“Keyset is missing”错误。

最后提个小建议:如果是跟着比较老的教程做项目,最好直接使用教程里指定的IdentityServer4版本,避免因为版本迭代带来的兼容性问题;如果想使用新版本,建议参考官方最新文档来配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:41:05