.NET Core Web API 应用程序无法连接到 Docker 上的 SQL 服务器 运行
.NET Core Web API Application cannot connect to SQL server running on Docker
使用MAC。错误(提供商: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-compose 解决了这个问题,在 docker.
中插入了 slq 运行 的设置
按名称引用容器。你可以这样做
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
使用MAC。错误(提供商: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-compose 解决了这个问题,在 docker.
中插入了 slq 运行 的设置按名称引用容器。你可以这样做
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