Ошибка IdentityServer4 при открытии URL-адреса DiscoveryEndpoint - PullRequest
0 голосов
/ 27 марта 2020

Я реализую IdentityServer4 с pnet core + ef core 3.1, и у меня есть dbContext с generi c DbContextOptions <> в конструкторе:

public class ApplicationDbContext : DbContext
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
    {

    }

и это моя инъекция dbContext в Startup.cs:

        var config = new ConfigurationBuilder()
            .SetBasePath(Directory.GetCurrentDirectory())
            .AddJsonFile("appSettings.json", false)
            .Build();

        string connectionString = config.GetSection("ConnectionStrings")["DefaultConnection"];


        services.AddDbContext<ApplicationDbContext>(builder =>
            builder.UseSqlServer(connectionString));

После появления домашней страницы IdentityServer и ввода URL-адреса DiscoveryEndpoint появляется эта ошибка:

InvalidOperationException: Нет поставщик базы данных был настроен для этого DbContext. Поставщик может быть настроен путем переопределения метода DbContext.OnConfiguring или с помощью AddDbContext в поставщике службы приложений. Если используется AddDbContext, то также убедитесь, что ваш тип DbContext принимает объект DbContextOptions в своем конструкторе и передает его базовому конструктору для DbContext.

и после этого я переопределяю метод OnConfiguring:

    override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        IConfigurationRoot configuration = new ConfigurationBuilder()
           .SetBasePath(Directory.GetCurrentDirectory())
           .AddJsonFile("appsettings.json")
           .Build();
        var connectionString = configuration.GetConnectionString("DefaultConnection");
        optionsBuilder.UseSqlServer(connectionString);

        base.OnConfiguring(optionsBuilder);
    }

но ничего не изменилось!

...