Sql server 无法从AspNetCore应用程序连接Docker MsSql
我正在尝试从我的Aspnet核心应用程序访问Docker MsSql实例 当我从ManagementStudio尝试时,我可以连接到MsSql服务器。但是,当我尝试运行应用程序时,会收到以下错误消息 SqlException:建立到SQL Server的连接时发生与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(提供程序:TCP提供程序,错误:40-无法打开到SQL Server的连接) 下面是我从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
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?如果有,请检查