无法从AspNetCore应用连接Docker MsSql

时间:2019-02-18 21:10:19

标签: sql-server docker asp.net-core

我正在尝试从我的Aspnet Core应用访问Docker MsSql实例。

当我从Management Studio尝试时,我可以连接到MsSql服务器。但是,当我尝试运行该应用程序时,出现以下错误消息。

  

SqlException:建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称正确,并且已将SQL Server配置为允许远程连接。 (提供者:TCP Provider,错误:40-无法打开与SQL Server的连接)

这是我从config.json

使用的连接字符串

{ "ConnectionStrings": { "MyConnectionString": "Data Source=127.0.0.1;Initial Catalog=Test;Integrated Security=False;Persist Security Info=True;User ID=SA;Password=##someStrongPass~~;" } }

2 个答案:

答案 0 :(得分:1)

您还可以使用容器名称代替127.0.0.1,port或localhost,port

{
  "ConnectionStrings": {
    "MyConnectionString": "Data Source=SQL_CONTAINER_NAME;Initial Catalog=Test;Integrated Security=False;Persist Security Info=True;User ID=SA;Password=SomeStrongPass;"
  }
}

答案 1 :(得分:0)

我找到了解决方法。

如果有人正在从容器中运行其AspNetCore应用程序,并将第二个容器用于数据库实例。确保在连接字符串中使用主机IP,并从DB容器公开数据库端口。与Linux上的容器不同,Windows上的Docker容器无法直接连接到DB容器的IP地址。希望可以在将来的版本中解决。

因此,在这种情况下,连接字符串应为

{ "ConnectionStrings": { "MyConnectionString": "Data Source=YOURMACHINEsIP;Initial Catalog=Test;Integrated Security=False;Persist Security Info=True;User ID=SA;Password=SomeStrongPass;" } }