Публикация .Net Core приложения с Entity Framework для IIS - PullRequest
0 голосов
/ 23 октября 2019

Я пытаюсь опубликовать свое приложение .Net Core в IIS, использующем Entity Framework. Я могу опубликовать его отлично, но в мастер публикации не включена база данных.

Я следовал различным учебникам, в том числе: https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-3.0

Однако ни один из них не говорит вам, как развернуть вашу базу данных или что нужнодолжно быть сделано, если используется структура объекта. Я относительно новичок в публикации и размещении веб-приложений, поэтому не знаю, что делать.

В данный момент мой веб-интерфейс загружается на IIS, но когда я захожу в систему, он вызывает 500ошибка. Я включил строку подключения и добавил пользователя и получил правильные разрешения в SSMS.

При публикации я обнаружил, что в проекте не найдено баз данных.

Будет ли это иметь эффект? я не могу получить доступ к базе данных и вызвать ошибку 500 при входе в систему и как я могу это исправить.

В проекте не найдены базы данных

Ответы [ 2 ]

0 голосов
/ 24 октября 2019

Похоже, вам нужно изменить конфигурацию ConnectionString в appsettings.json из формата

"Data": {
    "DefaultConnection": {
       "ConnectionString": "xxxxxx"
    }
}

на:

"ConnectionStrings": {
    "DefaultConnection": "xxxxxx"
}

И при запуске

services.AddDbContext<ApplicationDbContext>(opt => opt.UseSqlServer(Configuration["ConnectionStrings:DefaultConnection"]));
0 голосов
/ 23 октября 2019

Как вы создали свою базу данных локально? Вы вручную запускали команду database update? Я бы посоветовал вам добавить в ваш файл startup.cs код, чтобы убедиться, что ваша база данных создана и все пропущенные миграции были применены, вы можете добиться этого с помощью метода Configure:

 using (var scope = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>().CreateScope())
 {
     scope.ServiceProvider.GetRequiredService<DbContext>().Database.Migrate();
 }

Или просто EnsureCreated() вместо Migrate(), если вы не хотите применять отсутствующие миграции к будущим нагрузкам.

...