GetAddrInfo завершается неудачно с ошибкой 11001 при предыдущем вызове для семейства AF_INET6 в Windows

Проблемы

Данные службы технической поддержки Майкрософт для внутреннего использования

Задача 15072909

Рассмотрим следующий сценарий.

  • Выполнить запрос для имени узла с помощью простых имен без все суффиксы.

  • У вас есть список поиска суффиксов, а имя узла можно разрешить через один из этих суффиксов, кроме последнего суффикса в списке.

  • Запуском GetAddrInfo семейства AF_INET6 сначала и затем запустите эту команду для семейства AF_INET.

В этом случае функция не удается разрешить имя узла предоставленного и появляется "WSAHOST_NOT_FOUND (11001)» сообщение об ошибке.

Например у вас есть следующие среды:

Список поиска суффиксов: contoso.com, foo.contoso.com, bar.contoso.com

Попытка разрешить имя узла: проверка

Узел в запись DNS A: foo.contoso.com

При попытке запустить в следующем примере кода вызов завершится неудачей с ошибкой 11001.

hints.ai_socktype = SOCK_STREAM;             
                hints.ai_protocol = IPPROTO_TCP;             
                hints.ai_flags = 0; 
                hints.ai_family = AF_INET6;
 
getaddrinfo("test", NULL, &hints, &res)
 
hints.ai_family = AF_INET;           
 
getaddrinfo("test", NULL, &hints, &res)

Обходное решение

Этой проблемы можно избежать, используя следующие методы. Эта проблема не возникает, если вы:

  • Используйте AF_UNSPEC для семейства и позволяют определить результаты A/AAAA для вас наш код.

  • Поместите суффикса с соответствующим узлом запись в качестве последней записи в список поиска суффиксов.

  • Отключите кэширование отрицательных ответов на DNS-клиент.

  • Полное имя узла для разрешения передачи.

Первый вариант является рекомендуемым методом, обычно нет необходимости делать вызовы на основе каждого семейства, а Windows гораздо лучше оптимизирована для возврата наиболее возможных набор результатов для обоих семейств.

Нужна дополнительная помощь?

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединение к программе предварительной оценки Майкрософт

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×