Невозможно выполнить поиск DNS в экземпляре контейнера Azure - контейнер Windows - PullRequest
0 голосов
/ 01 мая 2019

Я пытаюсь подключиться к серверу sql из моего контейнера Windows. Все это прекрасно работает, когда я запускаю контейнер локально на моей машине или на Azure VM, и я могу подключиться к серверу Azure SQL, но соединение не удается, когда я развертываю контейнер в экземпляр контейнера Azure. Брандмауэр сервера sql открыт с 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()}");

1 Ответ

2 голосов
/ 03 мая 2019

В дополнение к моему первоначальному вопросу, я предложил два варианта решения этой проблемы:

  1. Если вы работаете с проектом .netcore, тогда установите цель сборки в linux и разверните вконтейнер Linux / окружение.Тогда поиск DNS работает как надо.

  2. Если вы застряли в проекте, отличном от .netcore, запустите сценарий powershell в загрузчике контейнера, чтобы заставить контейнер использовать общедоступный DNS, такой каккак Google (8.8.8.8).

$nic = Get-NetAdapter
Set-DnsClientServerAddress -InterfaceIndex $nic.IfIndex -ServerAddresses ('8.8.8.8')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...