Когда я запускаю API через Container (Dockerfile), этот код запускается для миграции БД при необходимости:
Код: Выделить всё
public static class DataHelper
{
public static async Task ManageDataAsync(IServiceProvider serviceProvider, CancellationToken cancellationToken)
{
using AppDbContext db = serviceProvider.GetRequiredService();
IEnumerable pendingMigrationIds = await db.Database.GetPendingMigrationsAsync(cancellationToken).ConfigureAwait(false);
if (pendingMigrationIds.Any())
{
await db.Database.MigrateAsync(cancellationToken).ConfigureAwait(false);
}
}
}
Microsoft. Data.SqlClient.SqlException: «При установлении соединения с SQL Server произошла ошибка, связанная с сетью или конкретным экземпляром. Сервер не найден или недоступен. Убедитесь, что имя экземпляра правильное и что SQL Server настроен на разрешение удаленных подключений. (поставщик: поставщик TCP, ошибка: 26 — ошибка определения сервера/указанного экземпляра)'
Поэтому я пошел на SO и попробовал эти решения:
- Открыл конфигурацию сервера Sql и включил общую память, именованные каналы и TCP/IP на обоих MSSQLServer & SQLExpress, добавлен IPALL TCP-порта к 1433.
- Открыл Win+r с помощью Services.msc и перезапустил SQL Server (MSSQLSERVER) и SQL Server (SQLEXPRESS), а также их агент сервера.
- Я изменил строки подключения на используйте Data Source=,
;..., Data Source=Data Source=local\\MSSQLLocalDB;..., Data Source=localhost\\SQLEXPRESS;... , Data Source=.\\SQLEXPRESS;... но ничего не работает - Я перезагрузил компьютер
- Я удалил контейнеры и изображения, прежде чем все повторить
Как я могу подключиться к SQL Server из Docker?
Подробнее здесь: https://stackoverflow.com/questions/791 ... -container