Не удается подключиться к Docker MsSql из приложения AspNetCore - PullRequest
0 голосов
/ 19 февраля 2019

Я пытаюсь получить доступ к экземпляру Docker MsSql из моего приложения Aspnet Core.

При попытке из Management Studio я могу подключиться к серверу MsSql.Однако, когда я пытаюсь запустить приложение, я получаю следующее сообщение об ошибке:

SqlException: ошибка, связанная с сетью или экземпляром, возникла при установлении соединения с SQL Server.Сервер не найден или не был доступен.Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений.(поставщик: поставщик TCP, ошибка: 40 - не удалось открыть соединение с SQL Server)

Вот строка подключения, которую я использую с config.json

{ "ConnectionStrings": { "MyConnectionString": "Data Source=127.0.0.1;Initial Catalog=Test;Integrated Security=False;Persist Security Info=True;User ID=SA;Password=##someStrongPass~~;" } }

Ответы [ 2 ]

0 голосов
/ 22 августа 2019

Вы также можете использовать имя контейнера вместо 127.0.0.1, порт или локальный хост, порт

{
  "ConnectionStrings": {
    "MyConnectionString": "Data Source=SQL_CONTAINER_NAME;Initial Catalog=Test;Integrated Security=False;Persist Security Info=True;User ID=SA;Password=SomeStrongPass;"
  }
}
0 голосов
/ 19 февраля 2019

Я нашел решение.

Если кто-то запускает свое приложение AspNetCore из контейнера и использует второй контейнер для экземпляра базы данных.Убедитесь, что вы используете IP-адрес хост-машины в строке подключения и открываете порт базы данных из контейнера БД.В отличие от контейнеров в Linux, контейнеры Docker в Windows не могут напрямую подключаться к IP-адресу контейнера БД.Надеемся, что это может быть решено в будущих выпусках.

Так что в этом случае строка подключения должна быть

{ "ConnectionStrings": { "MyConnectionString": "Data Source=YOURMACHINEsIP;Initial Catalog=Test;Integrated Security=False;Persist Security Info=True;User ID=SA;Password=SomeStrongPass;" } }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...