【发布时间】:2022-06-19 05:59:26
【问题描述】:
我刚刚将项目配置为连接到 dockerized SQL Server。 add-migration 和 update-database 命令通过 VS 工作,所以我认为连接字符串很好。我猜这与构建的应用程序位于容器中有关。我不使用docker-compose。我打算单独运行它们。
应用程序成功运行,但在对数据库执行操作时显示此错误并显示此错误:
SqlException:发生与网络相关或特定于实例的错误 在建立与 SQL Server 的连接时。服务器没有 找到或无法访问。验证实例名称是否正确 并且 SQL Server 配置为允许远程连接。 (提供者:TCP 提供者,错误:40 - 无法打开到 SQL 服务器)
这些文件帮不了我。其他与此类似的问题,但没有一个解决方案有效,例如启用了AllowRemoteConnections 集(默认情况下已启用)。
【问题讨论】:
-
Docker 容器是否位于同一个 Docker 网络中,以便它们可以相互通信?那个 Docker 网络是默认的
bridge网络吗?默认的bridge网络没有容器名称的 DNS 解析,因此它们必须使用其 IP 地址相互寻址,否则您需要使用旧的--link选项。 docker-compose 的好处之一是它为组合创建了一个支持 DNS 的网络,并将所有容器部署到该网络中——这意味着容器可以使用名称相互通信。 -
我明白了。那讲得通。看起来 docker-compose 可以让事情变得简单。
标签: asp.net sql-server docker asp.net-core