Конфигурация не выбирает строку подключения из секретов.файл json в ASP NET Core MVC 6.0 lts

#asp.net-core-mvc

Вопрос:

Я создал приложение ASP NET Core MVC 6 lts с отдельными учетными записями пользователей с помощью Visual Studio 2022 preview 6.0. Я переместил строку подключения из appsettings.json в secrets.json. Я запускаю приложение с помощью IIS Express и применяю миграции с открывшейся страницы исключений. Это работает.

Но когда я пытаюсь применить дополнительные миграции из консоли диспетчера пакетов, я получаю сообщение об ошибке «Строка подключения не может быть нулевой».

Добавьте службы в контейнер. Это от Program.cs :

 var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
builder.Services.AddDbContext<ApplicationDbContext>(options =>
    options.UseSqlServer(connectionString));
builder.Services.AddDatabaseDeveloperPageExceptionFilter();
 

Это appsettings.json означает , что значение строки подключения удалено:

 "ConnectionStrings": {
    "DefaultConnection": ""
},
 

Это Secrets.json :

 {
    "ConnectionStrings": {
        "DefaultConnection": "Data Source=DESKTOP-HIPPIDT;Initial Catalog=KehittajaLocalDb;Integrated Security=True;MultipleActiveResultSets=True"
    }
}
 

Комментарии:

1. Вы что-нибудь добавили builder.AddUserSecrets<Program>(); ? Вы можете попробовать обратиться к официальному документу о доступе к секрету .

2. Спасибо, что предупредил Тебя. Документы относятся к классу запуска, который не существует в версии 6.0. Дело в том, что 6.0 не вызывает «CreateDefaultBuilder», который автоматически добавляет пользовательские секреты. Я думаю.

Ответ №1:

Я добавил это в файл Program.cs, теперь он работает так, как ожидалось. Я все равно не знаю, как получилось, что это сработало, когда миграции были применены со страницы исключений с кнопкой «Применить миграции».

 // Add services to the container

if(builder.Enviroment.IsDevelopment())
{
    builder.Configuration.AddUserSecrets<Program>();
}

 ..other code