【发布时间】:2011-04-22 01:57:40
【问题描述】:
我正在编写一个应用程序,其唯一目的是确定我们的一个核心应用程序是否已启动并在生产中运行。此应用程序是 WCF 应用程序。该应用程序在负载均衡器后面的两个不同的盒子上启动并运行。每个框上的站点都配置为侦听以下 DNS 名称的流量:app.company.com。 DNS 将 app.company.com 解析到我们的负载均衡器,然后负载均衡器将请求以循环方式传递给两个盒子之一。在确定我们的核心应用程序是否已启动时,仅通过请求访问负载均衡器是不可接受的,因为负载均衡器可能会将我们轮询到活动服务器,即使其中一个服务器已关闭并且我们的应用程序需要能够以确定其中一个框是否已关闭。是的,负载均衡器已经在一定程度上检查了服务器是否已启动,但它并未涵盖所有场景。
我遇到的问题是我无法将流量直接发送到每个框(通过 IP 或主机名),因为主机标头 (app.company.com) 必须在请求中,或者目标服务器或 WCF 将拒绝它。如果我使用 app.company.com 而不是主机名或 IP 地址,我将访问负载均衡器,如果我修改机器上的 hosts 文件,它将仅适用于一个盒子。
有没有办法强制在 .Net 或 Windows 中进行 DNS 解析,以将 app.company.com 解析为我选择的 IP 地址,这种方式可以针对每个请求进行微调,并且不会影响整个系统的 DNS?否则,我可能会考虑手工制作一个请求,以便我可以将正确的主机标头嵌入到请求中,而不是实际到达相同 DNS 名称的目标。
谢谢
【问题讨论】: