#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