我正在尝试从Windows容器连接到SQL Server。当我在计算机或azure vm上本地启动容器时,一切正常,我可以连接到azure sql服务器,但是当我将容器部署到azure容器实例时,连接失败。 SQL Server防火墙已打开0.0.0.0至255.255.255.255。
我认为我已将其范围缩小到DNS问题,因为当我尝试查找sql服务器或任何主机时,都会收到“未知此类主机”的信息。 已知有30秒的启动延迟,但在多次重试后仍然无法解决。
IPHostEntry ipHostInfo = Dns.GetHostEntry("mysqlserver.database.windows.net");
IPAddress ipAddress = ipHostInfo.AddressList[0];
Console.WriteLine($"Ipaddress {ipAddress.MapToIPv4()}");
答案 0 :(得分:1)
在我最初提出的问题之外,我提出了两个解决方案。
如果您正在使用.netcore项目,则将构建目标设置为linux并部署到linux容器/环境。这样,DNS查找便可以正常工作。
如果您坚持使用非.netcore项目,请在容器引导程序上运行Powershell脚本,以强制容器使用Google(8.8.8.8)之类的公共DNS。
$nic = Get-NetAdapter
Set-DnsClientServerAddress -InterfaceIndex $nic.IfIndex -ServerAddresses ('8.8.8.8')