为什么Dns.Resolve在我的C#应用​​程序在W2008R2需要x3?

我有C#代码需要x3更长的执行W2008R2与W7

代码非常简单(获取主机名):

Stopwatch sw = new Stopwatch(); sw.Start(); IPHostEntry ip = Dns.Resolve(Dns.GetHostName()); string s = ip.HostName; sw.Stop(); Console.WriteLine(sw.ElapsedTicks); Console.WriteLine(s); 

我在W2008上停止了一些服务。 可能是我意外停止了一些有助于传播DNS通知或其他内容的东西…

有什么想法吗?

编辑:我很抱歉,我没有告诉。 x3的意思是:在W7上它需要<1ms,在W2008上是2或9ms …这不是真的关于超时。

当您尝试使用pingnslookupparsing程序之外的名称(或任何其他名称)时会发生什么?

无论操作系统如何,应用程序在两台计算机上的运行都应该完全相同,所以这可能是一个DNS问题。 如果机器的名称未在机器使用的DNS服务器中注册,或者机器无法在其configuration的所有DNS服务器上访问,或者服务器无法parsing名称,或者( 这里有很多其他可能的问题 ),查询将失败和/或超时,只有这样它才能使用本地hosts文件parsing。

你一定要检查你的DNSconfiguration。