
У меня есть 3 веб-сервера IIS в веб-ферме ARR. Когда мы делаем скользящие релизы, мы переводим один сервер в автономный режим в качестве резервного сервера и переводим его в «Недоступное состояние». Я заметил, что с ARR серверы не остаются в этом состоянии... они автоматически возвращаются в онлайн через несколько часов или дней. Кто-нибудь знает, как исправить эту ситуацию? Это очень плохо, так как сервер, который не работает, обычно не использует правильную версию нашего кода.
Мне нужно, чтобы сервер оставался недоступным, пока я не прикажу ему иного.
решение1
Я бы предложилнастройка теста работоспособностидля проверки версии на версию кода, которую вы хотите запустить. Когда вы вносите изменения, просто измените соответствие ответа. Вы также должнызапретить новые подключенияна сервере у вас есть окно обслуживания. Это истощит соединения и не позволит им работать независимо от работоспособности сервера
решение2
Я использую ARR 2.5 на Windows 2008 R2 Datacenter SP1 и столкнулся с той же проблемой при переходе сервера фермы путем выбора «Запретить новые подключения» или «Сделать сервер недоступным немедленно». Контроллер в конечном итоге вернет сервер фермы в доступное состояние. Я проверил журналы доступа на затронутом сервере, и в одном случае он стал доступен и начал обслуживать запросы через 2 часа.
Что касается решения Джима Б., у меня есть одна проблема с ним. Если вы развернете правильный код на основном сервере и не настроите тест работоспособности перед следующей проверкой, то все серверы фермы, которые были подготовлены с новым работающим кодом, будут помечены как неработоспособные, что в большинстве случаев относится ко всем серверам фермы. Я не вижу, как даже кратковременное ухудшение работоспособности сервера фермы стоит этого обходного пути. Если я не понимаю картину, пожалуйста, дайте мне знать.
Я подумал, что буду умным и сначала назначу сервер фермы нездоровым, а затем недоступным. Сервер сразу стал недоступнымиздоровый.
Лично я могу быть уверен, что сервер фермы не станет доступен автоматически, только полностью удалив его из балансировки нагрузки после того, как у вас появится обоснованная уверенность в том, что соединения завершены.
Несмотря на это, похоже, это ошибка. Я не могу быть уверен, что конкретный сервер фермы не будет обрабатывать трафик сеанса, когда я попытаюсь отвлечься от него (например, для обновлений и перезапусков).
решение3
Я понял, когда (но не почему) это происходит -и как это исправить!
Это происходит, когда пул приложений веб-сайта по умолчанию (процесс ARR) на балансировщике нагрузки завершается или перезапускается.
Следуйте рекомендациям Microsoft и установите app pool idle-timeout=0: Microsoft рекомендует руководство по настройке ARR