Я пишу приложение, единственная цель которого - определить, запущено ли одно из наших основных приложений в рабочем состоянии. Это приложение является приложением WCF. Приложение установлено и работает на двух разных устройствах за балансировщиком нагрузки. Сайт в каждом окне настроен на прослушивание трафика для следующего DNS-имени: app.company.com. DNS разрешает app.company.com нашему балансировщику нагрузки, который затем передает запрос в один из двух блоков в циклическом порядке. С точки зрения определения, работает ли наше основное приложение, недопустимо просто отправлять запрос на балансировщик нагрузки, так как балансировщик нагрузки может округлить процесс перехода на активный сервер, даже если один из серверов не работает, и наше приложение должно быть в состоянии чтобы определить, не работает ли одна из коробок. Да, балансировщик нагрузки уже в ограниченной степени проверяет, работает ли сервер, но он не охватывает все сценарии.
Проблема, с которой я столкнулся, заключается в том, что я не могу отправлять трафик непосредственно в каждый ящик (по IP-адресу или имени хоста), так как заголовок хоста (app.company.com) должен быть в запросе, либо сервер назначения или WCF отвергни это. Если я использую app.company.com вместо имени хоста или IP-адреса, я попаду на балансировщик нагрузки, если я изменю файл hosts на машине, он будет работать только для одного блока.
Существует ли способ принудительного разрешения DNS в .Net или Windows для разрешения app.company.com на IP-адрес по моему выбору таким образом, чтобы его можно было точно настроить для каждого запроса и не влиять на DNS для всей системы? В противном случае я, вероятно, буду стараться создать запрос, чтобы я мог встроить правильный заголовок узла в запрос, который фактически не направляется к цели с тем же DNS-именем.
Спасибо