.NET在Server 2008中永远缓存DNS

man*_*u08 7 .net dns windows-server-2008 .net-4.5

我遇到的问题是我的.NET Web请求总是针对给定的CNAME命中相同的IP.CNAME绑定到多个IP地址,并且每次发生DNS查找时都会以随机顺序返回这些IP地址(通过运行nslookup确认).

我写了一个简单的应用来测试这个:

    public void TestDNS()
    {
        while (true)
        {
            var ipAddress = Dns.GetHostAddresses("mywebsite.com").First().ToString();

            Console.WriteLine(string.Format("Current: '{0}' at: '{1}'", ipAddress, DateTime.Now.ToLongTimeString()));

            Thread.Sleep(1000);
        }
    }
Run Code Online (Sandbox Code Playgroud)

我在Server 2008 Datacenter,Server 2008 R2 Datacenter,Server 2012,Windows 7和Windows 8上运行了这个应用程序.所有计算机都有最新的更新和服务包.

唯一失败的机器是Server 2008.每台其他机器每分钟切换一次IP地址(TTL为1分钟).Server 2008永远不会切换(运行超过一个小时).

要清楚,在机器上运行nslookup和其他工具似乎表明DNS正在返回我期望的结果.此问题似乎特定于Server 2008上的.NET.

我已经尝试了相关答案中列出的项目但没有成功.

有任何想法吗?

Jaw*_*ikh 3

作为解决方法,ping 报告是否存在相同问题?

http://msdn.microsoft.com/en-us/library/system.net.networkinformation.ping.aspx

如果您接受解决方法,另一种可能的解决方案是搜索解析主机名的第三方库/代码或通过 [System.Diagnostics.Process();] 调用命令行。

希望有帮助。