我正在尝试从我的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~~;"
}
}
答案 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;"
}
}