. NET Базовое веб-приложение API не может подключиться к SQL серверу, работающему на Docker - PullRequest
0 голосов
/ 29 марта 2020

Использование MA C. Ошибка (поставщик: поставщик TCP, ошибка: 40 - не удалось открыть соединение с SQL сервером).

Connection string "Data Source=localhost,1433;Initial Catalog=MyDatabase;Integrated Security=True;User id=sa;Password=MyPassword;MultipleActiveResultSets=true"

Использование. NET Core 3.1. Web API работает в контейнере

База данных работает в контейнере docker. сопоставленные порты 1433: 1433 Возможность запрашивать базу данных из Azure Data Studio. Но при попытке подключиться из приложения. net .core выдает ошибку, приведенную выше.

using System.Data.SqlClient;
SqlConnection connection = new SqlConnection(_connectionString);
connection.Open();

Есть идеи?

РЕДАКТИРОВАТЬ

Итак, попытался с ip контейнера "Server = 172.17.0.2,1433; ...", но ошибка сохраняется.

EDIT2 - Решение

Итак, docker -компонент решил проблему, вставил настройки для slq, работающего в docker.

1 Ответ

0 голосов
/ 29 марта 2020

Ссылка на контейнер по имени. Вы могли бы сделать что-то вроде этого

sql-data:
   environment:
      - SA_PASSWORD=Pass@word
      - ACCEPT_EULA=Y
    ports:
      - "5433:1433" # Important: In a production environment, you should be using a managed service



- ConnectionStrings__DefaultConnection=Server=sql-data;Database=MyDatabase;User Id=sa;Password=MyPassword;MultipleActiveResultSets=true
...