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