【发布时间】:2010-10-12 11:03:57
【问题描述】:
请注意,我说的是客户端 DNS 解析器缓存。此消息与 Windows DNS 服务器无关。
我有一个执行大量 DNS 解析的 C# 程序。因为 HTTPWebRequest 组件不允许我更改 Host 标头,所以我无法创建自己的内部 DNS 缓存。所以我必须依赖 Windows DNS 缓存,它似乎无法更改。
关于 Windows Server 2003 中的 DNS 缓存注册表设置,TechNet article 相当不错,但我无法证明设置它们有什么作用。我通过 Google 搜索找到的所有其他页面要么引用了该页面,要么对其进行了释义,有时是错误的。
Windows 的 ipconfig 命令有一个 /displaydns 开关,可以输出缓存的内容。据我所知,这是确定 DNS 缓存大小的唯一方法。在我对具有 2 GB 内存的 32 位 Windows XP 机器进行的实验中,无论我将 DNS 缓存注册表值设置为什么,我最终都会在缓存中得到 30 到 40 个项目——即使在进行了数千次 DNS 解析之后.在具有 16 GB 内存的 64 位 Windows 2008 机器上,我的缓存中总是有 270 到 300 个项目。
我被难住了。我不知道答案是什么,但我认为是以下情况之一:
- 无法更改 DNS 解析器缓存的大小。
- 有可能,但文档有误。
- 文档就其内容而言是正确的,但不完整。
- 文档是正确且完整的,但我太笨了,无法理解它。
- 记录在案的注册表项实际上改变了缓存的大小,但 ipconfig 没有显示缓存中的所有项。
谁能告诉我是否可以在 Windows XP、Vista 或 Server 2008 中配置 DNS 解析器缓存的大小?
【问题讨论】:
-
更改值后重新启动 DNS 客户端服务?
-
试过了。不用找了。也试过重启机器。