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

Размещение собственного веб-API в отказоустойчивом кластере Windows

У меня есть служба Windows, которая самостоятельно размещает Asp.Net WebAPI. Это отлично работает, и я могу успешно отправлять запросы GET.

Однако я также пытаюсь разместить эту службу в отказоустойчивом кластере Windows 2012. Я настроил службу как роль «Generic Serivce» и могу переключить ее с одного компьютера на другой. Проблема возникает при попытке задействовать WebAPI в кластере. Когда я пытаюсь вызвать его, используя IP-адрес ролей, я получаю ошибку http 400 - Bad Request. Если я перейду через localhost, он будет работать (хорошо с машины, на которой запущена служба).

Есть ли у кого-нибудь мысли о том, как получить доступ к WebAPI с помощью IP-адреса роли?

Imgur

Ошибки HTTP 400 могут указывать на то, что IIS отклоняет запрос из-за отсутствия привязки, соответствующей заголовку узла. Это произойдет, если вы привязали приложение к IP-адресу, который существует на одном сервере, но не существует на другом. Группе ресурсов кластера нужен ресурс IP-адреса, который «плавает» между узлами вместе с самим приложением. Это в дополнение к выделенным IP-адресам каждого узла кластера.

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