在我的 Win7 工作站上,当程序启动网络连接时,它会挂起整整 31 秒(我编写了一个测试应用程序来调查这个问题)。它最终会建立连接,从那时起程序将正常工作,直到关闭。此外,在启动第一个网络连接后,所有后续连接都可以不间断地进行。
这不适用于 ICMP ping。我的测试应用程序可以不间断地 ping 计算机,然后启动与服务器的 HTTP 连接并挂起 30 秒。
该问题特定于每个进程。我可以让同一进程的多个实例连接到同一台计算机,并且每个实例都会在其初始连接时表现出该行为。
这也不是硬件问题。这是 Windows 安装的网络堆栈中的问题。我在这台机器上安装了 VMware,在 VM 内部,我可以启动连接而不会暂停。
另外,我已经运行了 Wireshark,但直到 31 秒之后才看到任何数据包(SYN 或任何东西)。
我查看了 Windows 防火墙,发现它已被禁用。这听起来熟悉吗?有人知道我可以在哪里查看吗?
答案1
感谢您的建议。我在这台机器上安装了 AV 软件,但问题不在于此。我禁用了它,问题仍然存在。这是启动时运行的某个程序。我按照 @moab 的建议使用 msconfig 进行了完全干净的重启(禁用了所有启动服务和应用程序),问题就解决了。(我不知道为什么我没有早点想到尝试一下,但还是感谢 @moab!)
现在开始漫长而艰巨的过程,有选择地启用某些功能并重新启动,直到问题再次出现。由于这是旧版 Windows(从 Vista 升级而来),因此有很多事情需要处理...
一旦我弄清楚了,我会更新这个答案,准确说明导致问题的原因。(当然,前提是我坚持到找到这个问题的地步。我可能会在那之前放弃并重新安装一切……)
更新:
它似乎是一个损坏的 PGP 桌面安装(在我工作的地方我们使用商业版本)。
经过数十次重启(好吧,看起来好像是数十次,但可能不超过十几次),唯一会导致此行为的就是启动 PGPTray.exe 的快捷方式。整个事情很奇怪,因为快捷方式位于我的开始菜单的启动文件夹中,并指向 \windows\installer\ guid 文件夹下的 icon6560581611.exe。但它确实启动了 PGPTray.exe。我使用 jotti 恶意软件扫描程序扫描了该 exe,结果没有问题。
在谷歌上搜索文件名,发现有很多人在谈论它。我还和一位同事聊过,他的电脑不久前也发生过类似的事情。他把责任归咎于 PGP,重新安装,然后继续。希望这篇文章能帮助到以后遇到这种情况的人。