有一个 Windows Server Standard SP2(可能是 Vista 的服务器版本,因为它的版本号是 6.0.6002)。
IIS 服务器上运行着一些 Web 应用。其中一些应用使用 ReCaptcha 验证。它们用来验证的 DLL 正在向 发出 POST 请求http://api-verify.recaptcha.net/verify
。
这个请求在我尝试过的任何配置下都运行了 1-2 年,没有任何问题,但现在它需要大约 22 秒,这足以让程序超时。
我已经制作了一个最小测试用例,它打开一个请求,写入一些帖子数据,然后写出结果并从几个位置对其进行了测试。
在大多数位置,响应几乎是即时的,仅有这台服务器无法及时获得响应。
可能与此问题相关:
ping 该地址时,它被解析为 IPv6,但从其他位置它只是被解析为 IPv4。使用该-4
参数时,我可以正常 ping IPv4 地址。
这可能是 DNS 问题吗?我该如何检查导致请求速度变慢的瓶颈?我应该联系 DNS 提供商吗?
答案1
您尝试连接的站点是双栈 IPv4/IPv6,但您的服务器尚未提供原生 IPv6。因此,它尝试使用 IPv6 隧道,但不知何故失败了。
要解决此问题,请禁用 IPv6 隧道技术 (Teredo、6to4 和 ISATAP):
netsh int ipv6 isatap set state disabled
netsh int ipv6 6to4 set state disabled
netsh int teredo set state disabled
不要完全禁用 IPv6;当您将原生 IPv6 推广到您的数据中心时,这会给您带来问题。