1

我在运行Windows Server 2008环境中的测试应用程序时遇到DNS缓存问题。测试应用程序模拟数百个用户连接到Web服务。 Web服务托管在Amazons Web Services后面,实际上是一个负载平衡器,其后面有许多Amazon EC2实例。负载均衡器和EC2实例在正常操作下正常工作,因为普通客户端连接均匀分布。但是,当我运行测试应用程序时,所有连接都会碰到单个EC2实例。我相信这可能是托管测试应用程序缓存DNS查找的Windows环境。如何在Windows Server 2008上禁用DNS缓存

如何禁用DNS缓存?我认为只要停止DNS客户端服务就可以了(这里提到:http://www.tipsandtutorials.net/how-to-turn-off-dns-caching-under-microsoft-windows.html),但这并没有改变任何东西。还有什么必须要做,以禁用缓存?

有什么我可以看看哪些可能导致这些问题?

编辑:是否有可能在正在使用的WCF服务中有另一个级别的DNS缓存?

TIA

回答

1

我觉得你的问题是,你的负载平衡器正试图从同一主机到同一台服务器发送的所有流量......这就是“设计” ...(又名:“粘性会话“)

你需要明确地告诉你要禁用粘性会话并启用负载平衡器‘循环’......(具体术语将根据您的负载均衡技术会发生变化)

+0

感谢您的回复,但我不认为这是这种情况,因为在关闭本地计算机上运行DNS客户端服务的本地控制台应用似乎可以正确传播加载。只有当我们使用使用WCF服务的测试应用程序时,负载均衡似乎不会发生。 – millie

0

基于this other question ,我想你需要

ServicePointManager.DnsRefreshTimeout = 0; 

request.KeepAlive = false; 

您可以通过在web.config设置ServicePointManager设置。请参阅the MSDN documentation

此外,还有另一个类似的设置enableDnsRoundRobin看起来它可能也会帮助你。

相关问题