【发布时间】:2020-04-15 02:50:32
【问题描述】:
我有一个 ASP.NET Core v3 Web API 服务。它可以正常运行并连接到普通的 Windows 托管 SQL Server 实例。但是当我尝试将它连接到 Docker Linux 托管的 SQL Server 实例时,它失败了。
这里有一些细节:
- 两个容器都在我的 Windows 10 开发机器上运行
- Web API 服务容器是基于 Linux 的,可以自己正常工作
- Linux SQL Server 容器本身运行良好
- 我可以毫无问题地通过 SSMS 连接和运行查询。
- 两个容器都是同一个默认的 Bridge 网络。
- 我运行了
docker network inspect bridge -f "{{json .Containers }}",它列出了两个容器。
- 我运行了
这是我的数据库连接字符串:
"Server=localhost;Database=MyDatabase;User Id=MySqlUser;Password=MyPassword"
我还尝试在我的hosts localsql 文件中设置一个条目,设置为 127.0.0.0。 localhost 和 localsql 都可以正常使用 SSMS 连接到 docker 数据库。
这是实际的错误信息:
在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:TCP 提供者,错误:40 - 无法打开与 SQL Server 的连接)
当我尝试从我的主机文件中使用 localsql 时,它有一个内部异常,此消息 "Name or service not known"
【问题讨论】:
标签: sql-server docker asp.net-core .net-core