做开发的,难免不了修改hosts。但是每次修改hosts后要重启应用,要么等很长时间不操作后才生效。这样不利于快速开发。
分析后,应该是dnscache服务cache了dns查询结果。
经查阅相关资料,发现可以通过修改dnscache注册表的相关参数来缩短cache时间和cache size。
修改点:
"MaxCacheTtl"=dword:00000001
"MaxNegativeCacheTtl"=dword:00000001
"ServerPriorityTimeLimit"=dword:00000000
"CacheHashTableBucketSize"=dword:00000001
"CacheHashTableSize"=dword:00000001
"MaxCacheEntryTtlLimit"=dword:00000001
修改后重启机器生效(ms重启服务不行)。重启后,改了hosts后,直接刷新IE生效。不行话,3s后再刷新一次。
以上在windows xp sp3上测试通过。
附上我的机器的dns cache注册表参数。有需要可以下载后解压,直接导入。
==========华丽丽的分隔线================
2009.12.30新增。
上面的方法有时候好像无效,其实最有效的方法是修改下面的注册表:
HKeyCurrentUser\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings
增加:
DnsCacheEnabled 0x0 (REG_DWORD)
DnsCacheTimeout 0x0 (REG_DWORD)
ServerInfoTimeOut 0x0 (REG_DWORD)