首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >升级到Duende IdentityServer 6.0时ConfigurationStoreOptions的问题

升级到Duende IdentityServer 6.0时ConfigurationStoreOptions的问题
EN

Stack Overflow用户
提问于 2022-09-01 20:09:35
回答 1查看 159关注 0票数 1

我有一些集成测试,它们使用真正的数据库来获取ConfigurationDbContext。升级到Duende 6.0时,由于添加了IdentityServer连接池特性,ConfigurationDbContext的构造函数中断(只接受1 arg而不是2)。

此代码破坏:

代码语言:javascript
复制
public static ConfigurationDbContext GetConfigurationDbContext()
{
    var connectionString = Configuration.GetConnectionString("ConfigurationDbContext");
    var builder = new DbContextOptionsBuilder<ConfigurationDbContext>();
    builder.UseSqlServer(connectionString);
    var options = new ConfigurationStoreOptions
    {
        DefaultSchema = Schema.IdSrv
    };
    return new ConfigurationDbContext(builder.Options, options);
}

所以我把它改成:

代码语言:javascript
复制
    return new ConfigurationDbContext(builder.Options);

现在我可以构建了,但是我的测试失败了,出现了以下错误:

Unable to resolve service for type 'Duende.IdentityServer.EntityFramework.Options.ConfigurationStoreOptions'

我该怎么通过ConfigurationStoreOptions呢?查看Github中的代码,它看起来依赖于依赖项注入。(从服务集合中获取选项)。

EN

回答 1

Stack Overflow用户

发布于 2022-09-01 20:09:35

好吧,我想出了我自己的问题,但我不得不四处搜寻。它没有被列为升级文档中的重大更改:

https://docs.duendesoftware.com/identityserver/v6/upgrades/v5.2_to_v6.0/

解决方案是将项目升级到6.1

代码语言:javascript
复制
<PackageReference Include="Duende.IdentityServer.EntityFramework.Storage" Version="6.1.5" />

然后可以使用此代码(StoreOptions已成为公共集属性)

代码语言:javascript
复制
public static ConfigurationDbContext GetConfigurationDbContext()
{
    var connectionString = Configuration.GetConnectionString("MyIdentity");
    var builder = new DbContextOptionsBuilder<ConfigurationDbContext>();
    builder.UseSqlServer(connectionString);
    var options = new ConfigurationStoreOptions
    {
        DefaultSchema = Schema.IdSrv
    };
    var dbContext = new ConfigurationDbContext(builder.Options);
    dbContext.StoreOptions = options;
    return dbContext;
}

这将适用于ConfigurationDbContext和PersistedGrantDbContext。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73574945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档