首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DNS故障切换需要时间

DNS故障切换需要时间
EN

Stack Overflow用户
提问于 2010-10-09 02:20:35
回答 3查看 1.2K关注 0票数 3

我在IIS上有一个C# web服务,它充当代理。我的问题是,当其中一个后端服务器的IP地址改变时,windows DNS缓存被正确地更新(用nslookup检查),但是服务继续在旧IP上做一些请求大约40分钟。

我注意到,如果我停止访问代理5分钟,故障转移就会起作用,但这不是一个可接受的解决方案,故障转移应该是自动的。

有什么想法吗?

提前谢谢。

EN

回答 3

Stack Overflow用户

发布于 2012-02-04 05:43:35

尝试在您的服务器Web.config上进行以下设置:

代码语言:javascript
运行
复制
<configuration> 
   <system.webServer> 
      <httpProtocol allowKeepAlive="false" /> 
   </system.webServer> 
</configuration>

这会告诉服务器it can't send back the Connection: Keep-Alive header。为每个请求创建新的连接,这以某种方式迫使它更新为新的IP。当启用Keep Alive时,它将在很长一段时间内保持与旧IP的共享连接。

票数 2
EN

Stack Overflow用户

发布于 2010-10-09 03:49:57

您是否已尝试将负缓存超时设置为零?我知道你说过dns缓存是正确更新的,但如果你在它过期的时候命中它一次,你可能会一直使用旧的IP,直到它过期。

在Windows XP上,您可以在注册表中将其设置为:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters DWORD值: MaxNegativeCacheTtl值:0

在Vista或Windows7中还没有玩过这个游戏。

我很想看看不能解析后端服务器地址的代码……想知道代码本身中是否有什么东西保留了旧IP。

票数 0
EN

Stack Overflow用户

发布于 2010-10-09 15:08:40

如果你使用的是建立在windows http组件上的东西,你会发现该组件挂在解析的ip上,作为一种性能优化。一旦它有一个名称/ip匹配,它将挂起它的字面上几天。它完全忽略了TTL。

您使用空闲延迟克服此问题的唯一原因是因为组件在您的特定使用中被回收。

这是一个已知的问题。MS程序经理“某种程度上”承认了这一点。但是,它从来没有被修复过。

我们写了我们自己的替代品。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3893230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档