Какой должна быть строка подключения в .net core api, чтобы иметь возможность подключаться к докеризованному sql express? - PullRequest
0 голосов
/ 04 апреля 2019

Я мог бы загрузить и запустить microsoft/mssql-server-windows-express Так что это работает:

docker run -d -p 1433:1433 -e sa_password=MyPassword1 -e ACCEPT_EULA=Y microsoft/mssql-server-windows-express

Я могу подключить его через powershell и через Sql studio management studio (localhost, 1433, SA и MyPass1). Таким образом, я могу просматривать базы данных и играть с ними.

Однако в приложении API ядра .NET я не могу подключиться к док-серверу mssql, экспресс-серверу (windows dockerized и не linux))

  "ConnectionStrings": {
    "Default": "Server=127.0.0.1,1433;Database=master;User=sa;Password=MyPassword1 ;"
  },

К сожалению, я всегда получаю это исключение sql:

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

Итак, контейнер mssql-server-windows-express работает, я могу связаться с нимкомандой powershell и студией управления сервером sql, но когда я запускаю приложение .net core api в visual studio 2017, я всегда получаю это исключение sql.

1 Ответ

0 голосов
/ 04 апреля 2019

Localhost с точки зрения вашего компьютера не совпадает с localhost с точки зрения запущенного экземпляра Docker. Используя 127.0.0.1, вы указываете ему подключаться к себе, а не к вашей локальной машине. Вам нужно изменить это на фактический IP вашего локального компьютера.

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