【发布时间】:2025-11-21 06:55:02
【问题描述】:
使用 MAC。错误(提供程序:TCP 提供程序,错误:40 - 无法打开与 SQL Server 的连接)。
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 的设置。
【问题讨论】:
-
.NET Core 应用程序是否也在容器中运行?
docker ps -a显示什么? -
是的,也在容器 0.0.0.0:22443->443/tcp
-
你是如何建立这个链接的?基本上,
localhost并不意味着您认为它在容器中的含义。您需要能够按名称解析其他容器,并在您的 connstring 中引用它 -
你可以使用 SSMS 连接到容器吗?
-
"Server=172.17.0.2,1433;..",所以,尝试使用容器的ip,但错误仍然存在......
标签: c# sql-server macos docker asp.net-core-3.1