Проверка связи с DNS-сервером (8.8.8.8) модульным тестом VSTest завершается ошибкой при работе в Azure Pipeline

Проверка связи с DNS-сервером (8.8.8.8) модульным тестом VSTest завершается ошибкой при работе в Azure Pipeline. Операция ping является частью нескольких модульных тестов. Когда эти модульные тесты запускались на локальном компьютере - все работает нормально. Однако, когда те же модульные тесты выполняются в Azure Pipeline CI, все операции проверки связи завершаются ошибкой. Что странно, все другие интернет-вызовы (например, HTTP POST) работают нормально локально и на Azure Pipeline CI. Любые идеи?


person AKornich    schedule 20.09.2019    source источник
comment
ICMP наверное заблокировали?   -  person 4c74356b41    schedule 20.09.2019
comment
Спасибо за быстрый ответ. есть ли способ открыть ICMP на виртуальной машине Azure Pipeline?   -  person AKornich    schedule 21.09.2019
comment
Вы можете использовать свой собственный компьютер для размещения агента CI. Также странно, что вы создаете пример модульного теста, который зависит от переменных факторов, таких как внешняя служба DNS. Обычно это макеты.   -  person Lex Li    schedule 21.09.2019
comment
да, у нас есть несколько модульных тестов, которые по сути представляют собой интеграционные тесты, проверяющие весь стек обработки в реальных условиях (максимально приближенных к производственной среде). этот подход работал очень хорошо для нас, использовались только HTTP-вызовы до недавнего времени, когда мы добавили в микс несколько вызовов ping, которые, по-видимому, по умолчанию блокируются в Azure Pipelines.   -  person AKornich    schedule 21.09.2019


Ответы (1)


Проверка связи с DNS-сервером (8.8.8.8) модульным тестом VSTest завершается ошибкой при работе в Azure Pipeline

Боюсь, вам нужно настроить свой частный агент на локальном компьютере.

В качестве теста я также мог успешно проверить связь с DNS-сервером (8.8.8.8) на локальном компьютере, но не смог выполнить запрос на размещенном агенте в конвейере Azure.

Это потому, что:

Протокол ICMP не разрешен через балансировщик нагрузки Azure, вы заметите, что вы не можете проверить связь с виртуальной машиной Azure из Интернета, а внутри виртуальной машины Azure вы не можете проверить связь с местоположениями в Интернете.

Посетите блог Используйте эхо-запросы порта вместо ICMP для проверки возможности подключения к виртуальной машине Azure для получения дополнительных сведений.

Кроме того, мы также не могли через брандмауэр Windows разрешить пинг на виртуальной машине Azure.

Итак, если вы хотите пропинговать DNS-сервер, вам нужно создать свой частный агент на вашем локальном компьютере:

Настройка частного агента < / а>

Надеюсь это поможет.

person Leo Liu-MSFT    schedule 25.09.2019
comment
благодарю вас! Это проясняет проблему и предлагает возможные альтернативы. - person AKornich; 26.09.2019