Невозможно подключиться к локальному SQL-серверу при запуске приложения через контейнер Docker.C#

Место общения программистов C#
Anonymous
Невозможно подключиться к локальному SQL-серверу при запуске приложения через контейнер Docker.

Сообщение Anonymous »

Я пытаюсь запустить свой WEB API через Docker. Я впервые использую Docker с .NET, и это вызывает головную боль.
Когда я запускаю 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);
}
}
}
Однако, когда я запускаю код, это исключение выдается в .GetPendingMigrations:

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;... но ничего не работает
  • Я перезагрузил компьютер
  • Я удалил контейнеры и изображения, прежде чем все повторить
Я попробовал все решения, которые смог найти в SO, но ничего не помогло.
Как я могу подключиться к SQL Server из Docker?

Подробнее здесь: https://stackoverflow.com/questions/791 ... -container

Вернуться в «C#»