重写Hosts文件不会更新下一个IP连接

时间:2011-02-18 12:56:22

标签: c# .net dns hosts

我们有一个C#应用程序,它与云中的一组IP中的任何一个进行通信。 其中任何一个可能无法正常工作。我们使用地址的URL作为IIS服务器期望主机标题名称,以便路由到正确的应用程序界面。

因此我们将Hosts文件设置为将URL指向IP。 然后我们在URL处发送命令以恢复服务器时间 这告诉我们连接正在发挥作用。

如果我们没有得到回应,我们假设连接已经死亡。然后,我们将列表中的新IP写入Hosts文件,然后再试一次。

这是我们遇到错误的地方。该应用程序似乎没有看到Hosts文件已更改并使用旧(坏)IP。

应用程序中没有内置缓存,所以我们假设Windows正在为我们缓存。

我们试图用以下内容刷新缓存:

ipconfig / flushdns arp -d * nbtstat -R

我们仍然遇到同样的问题。 关于如何清除缓存的任何想法?

1 个答案:

答案 0 :(得分:1)

如果您无法在服务器端解决此问题(例如负载均衡器等),那么只需使用代码中的IP地址列表:

var req = HttpWebRequest.Create("http://" + IPAdd.ToString() + "/path_to_query_time");
((HttpWebRequest)req).Host = "yourhostheaderhere";
var resp = req.GetResponse();
//If things have gone wrong here, change IPAdd to the next IP address and start over.

不要乱用用户设置来尝试解决您自己制作的应用程序中的问题。