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

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

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

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

Imgur

1 ответ

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

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

Другие вопросы по тегам