configurationWindows DNSparsing器caching

几个月前我在堆栈溢出问了这个问题 ,并没有得到任何有用的答案。 也许这里有人有更好的信息。

请注意,我正在谈论客户端DNSparsing器caching。 此消息不涉及Windows DNS服务器。

我有一个C#程序,它执行大量的DNSparsing。 因为HTTPWebRequest组件不会让我更改主机头,我不能创build我自己的内部DNScaching。 所以我必须依靠Windows DNScaching,这看起来不会改变。

有一个相当不错的TechNet文章有关Windows Server 2003中的DNScachingregistry设置,但我还没有能够certificate,设置它们在XP,Server 2003,Vista或Server 2008中做任何事情。所有其他页面,我通过谷歌search引用该页面或解释它,有时不正确。

Windows的ipconfig命令有一个/displaydns开关,它将输出caching的内容。 据我所知,这是确定DNScaching大小的唯一方法。 在使用2 GB内存的32位Windows XP机器上进行的实验中,无论我设置DNScachingregistry值如何,我总是会在caching中使用30到40个项目 – 甚至在执行数千个DNSparsing。 在具有16 GB内存的64位Windows 2008计算机上,caching中总是有270到300个项目。

我很难过 我不知道答案是什么,但我认为以下情况之一是:

  1. 无法更改DNSparsing器caching的大小。
  2. 这是可能的,但文件是错误的。
  3. 文件是正确的,但它是不完整的。
  4. 文档是正确的,完整的,但我太愚蠢,没有意义。
  5. logging的registry项实际上改变了caching的大小,但ipconfig并没有显示caching中的所有条目。

任何人都可以告诉我是否可以在Windows XP,Vista或Server 2008中configurationDNSparsing器caching的大小?

另一种validation方法是查看networking上stream动的DNSstream量。 即如果您的应用程序在下午2点对domainX进行查询,并且在跟踪中的下午2点,您看不到相应的DNS数据包,则该名称将使用客户端caching解决。

我知道,确认caching大小是一种令人费解的方式。 我同意应该有更好的方法来确认这一点。

尝试在微软官方论坛中发送问题,或者尝试发送电子邮件给networking团队

这里。 http://blogs.msdn.com/wndp/

给这个旋转:

HKLM \系统\ CurrentControlSet \服务\的dnscache \参数\ MaxCacheSize

我找不到任何文档,但Dnscache服务在启动时检查是否存在该registry值,因此值得testing。

值可能是千字节。 就像我说的那样,因为它没有logging,所以你必须testing。

我没有尝试更改DNS客户端上的设置,所以我不能说这个,但是我build议在重新启动服务时运行processmon(www.sysinternals.com)。 您应该看到任何尝试读取registry项。 它会告诉你它试图访问哪个registry项和项目。 这应该与文档匹配,但如果不是,它会希望告诉你什么是错的。