【问题标题】:Not able to connect to host database from asp.net core application which is in docker windows container无法从 docker windows 容器中的 asp.net 核心应用程序连接到主机数据库
【发布时间】:2019-05-23 07:15:18
【问题描述】:

无法从 docker windows 容器中的 asp.net 核心应用程序连接到主机 sql 数据库

我已经给了主机连接字符串和用户名和密码,但它没有连接。

连接字符串如下:

Server=<ip address>,<port>;Database=<database>;Integrated Security=False;User Id=<id>;Password=<password>;MultipleActiveResultSets=True;

我得到的错误信息如下:

连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应

【问题讨论】:

    标签: c# docker asp.net-core


    【解决方案1】:

    如果 SQL 服务器与 Docker 容器运行在同一主机(即同一台机器)上,您可以使用容器内的特殊主机名host.docker.internal 访问主机上的“localhost”。

    换句话说:容器内的host.docker.internal 指向容器外的localhost

    如果它们都在容器中运行,请记住确保 SQL Server 容器发布正确的端口(使用 -p 标志)。

    【讨论】:

    • 感谢乔恩的回复。我在容器中运行了 api,它试图连接到我机器上托管的 MSSQL 数据库实例。根据您的输入,我已将 appsettings.json 文件中的 connectionstring 属性更新为:“ConnectionString”:“Server=host.docker.internal;Database=DemoDB;Trusted_Connection=True;” .我进行了验证,现在出现错误:建立与 SQL Server 的连接时发生网络相关或特定于实例的错误。服务器未找到或无法访问。
    • 非常感谢任何帮助:)
    • 有点不确定。我对 MSSQL 没有任何经验。你确定它连接到正确的端口吗?
    • 是的,它在端口号 1433 上运行,会不会是防火墙问题?
    • 我不这么认为,Docker 通常会处理所有这些。我唯一能想到的就是测试您是否能够使用docker exec 从Web API 容器访问MSSQL 容器。此外,您可能想看看这个先前的答案,它也谈到了 Docker 中的 MSSQL:stackoverflow.com/questions/54008489/…
    猜你喜欢
    • 1970-01-01
    • 2018-01-31
    • 2022-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-04
    相关资源
    最近更新 更多