Sql server 无法从AspNetCore应用程序连接Docker MsSql

Sql server 无法从AspNetCore应用程序连接Docker MsSql,sql-server,docker,asp.net-core,Sql Server,Docker,Asp.net Core,我正在尝试从我的Aspnet核心应用程序访问Docker MsSql实例 当我从ManagementStudio尝试时,我可以连接到MsSql服务器。但是,当我尝试运行应用程序时,会收到以下错误消息 SqlException:建立到SQL Server的连接时发生与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(提供程序:TCP提供程序,错误:40-无法打开到SQL Server的连接) 下面是我从config.j

我正在尝试从我的Aspnet核心应用程序访问Docker MsSql实例

当我从ManagementStudio尝试时,我可以连接到MsSql服务器。但是,当我尝试运行应用程序时,会收到以下错误消息

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

下面是我从
config.json

{
“连接字符串”:{
“MyConnectionString”:“数据源=127.0.0.1;初始目录=Test;集成安全性=False;持久安全性信息=True;用户ID=SA;密码=someStrongPass~~”
}
}

我找到了解决方案

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

所以在这种情况下,连接字符串应该是

{
“连接字符串”:{
“MyConnectionString”:“数据源=您的机器IP;初始目录=测试;集成安全性=False;持久安全性信息=True;用户ID=SA;密码=SomeStrongPass;”
}

}

您也可以使用容器名称,而不是127.0.0.1端口或localhost端口

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

你错过港口了吗?还请提供您的docker文件/撰写文件。我也尝试了端口1433,结果相同。您是否在docker容器中承载.net core?如果有,请检查