Назад | Перейти на главную страницу

Маршрутизация ARR на недоступный сервер

Я настроил Azure Devops для автоматического развертывания веб-сайта ASP.NET на веб-ферме (ARR). Он развернется на недоступном сервере, затем сделает его доступным и сделает другой сервер недоступным.

Однако я заметил, что ARR направляет запросы на недоступный сервер. Вы можете увидеть это, когда перейдете к URL-адресу, и каждый раз, когда вы обновляете его, он переключает версии. Вы также можете увидеть это в статистике мониторинга и управления в IIS: Общее количество запросов показывает, что запросы делятся между серверами..

В Azure DevOps у меня есть задача PowerShell, которая запускает скрипт, который «корректно сделает сервер недоступным»:

$setState = $arr.Methods['SetState'].CreateInstance();
$setState.Input.Attributes['newState'].Value = 2;
$setState.Execute();

Я запустил этот сценарий прямо на машине, и он работает.

Кто-нибудь сталкивался с подобной проблемой? Кто-нибудь знает, почему это происходит? Это ошибка IIS или метода Execute? Есть ли обходной путь? Я думаю, что могу просто полностью отключить сервер («Перевести сервер в автономный режим» в диспетчере IIS), но «Сделать сервер недоступным изящно» будет предпочтительнее, чем принудительное отключение соединений.