这几天一直在追这个问题。它来来去去......意思是,问题存在 8-10 小时,然后消失 12 小时,然后重新出现 4 小时,然后消失 2 小时,依此类推。
这是我的设置:我有一个运行 IIS 7.5 的 Windows 2008 R2 服务器,它托管了大约 60 个网站。每个网站都有自己绑定的 IP 地址。所有站点都在端口 80 上运行,除了一个(我的管理面板)在端口 443 (ssl) 上运行。
我注意到这些网站上周停止工作。我访问了其中一个站点,chrome 给了我“糟糕!Google Chrome 无法连接到 www.mysite.com 尝试重新加载...”。如果我刷新页面 5 或 6 次(有时需要 10 次以上),那么该网站就会出现。我最初的想法是这是一个与网络相关的问题,所以我 RDP 连接到服务器,打开 IIS 并从 IIS 中的浏览链接浏览到一些站点。我直接在服务器上看到了同样的东西。然后我想,也许是因为通过点击IP,它仍然首先到达路由器,这可能是问题的根源,所以我将其中一个站点绑定到环回地址(127.0.0.1)并看到了同样的问题。
通过这些“测试”,我发现只有端口 80 有问题。我的下一个想法是,也许是赛门铁克的端点保护(我的病毒软件)阻止了端口 80 上的传入请求,所以我禁用了它......同样的问题。
然后我想这可能是我的 Windows 防火墙规则呕吐。我重新创建了规则以允许端口 80 上的流量通过,同样的问题。然后我完全禁用了防火墙,看看是否有其他东西在防火墙内绊倒了它,同样的问题。
然后,我尝试从远程计算机远程登录到端口 80 上的站点之一。它通过了 3 或 4 次,然后 telnet 将无法连接。因此,它所经历的时间是服务器提供网页的时间。它无法连接的时间是它不会为页面提供服务的时间。
然后,我在 IIS 中为其中一个站点添加了“失败的请求跟踪”,看看我是否可以确定它失败时失败的原因。我试图访问该站点几次,但失败了,但没有创建日志。然后我终于通过了,它创建了一个日志。这告诉我,当它失败时,它甚至没有进入 IIS。
然后我尝试运行:
netstat -anp tcp | find ":80"
看看是否有其他东西正在捕获从端口 80 传入的流量。这并没有向我显示任何异常情况。我还下载并运行了 TcpView 并没有看到任何会捕获端口 80 上的流量的东西。然后我停止了 IIS 并再次运行上述两个,当 IIS 停止时,端口 80 上没有任何监听。
然后,我尝试进行一些端口映射,将来自端口 80 的流量映射到高端口,看看这是否至少允许服务器始终如一地服务页面。我用这个命令来映射端口
netsh interface portproxy add v4tov4 listenport=80 listenaddress=188.55.22.11 connectport=20005 connectaddress=188.55.22.11
这也没有解决问题,它告诉我问题甚至在它达到网络堆栈的那个级别之前就已经发生了(我不知道在哪里??)。
我已经完成了 iisreset,我已经重新启动了服务器,我已经运行了病毒扫描,我已经运行了 Windows 更新,我已经完成了磁盘碎片整理......没有任何东西可以解决这个问题。
我的问题可能与硬件有关吗?网络接口是否会变坏到只允许一个端口上的流量,但允许所有其他流量通过的程度?我可以 FTP 到机器没有任何问题,我可以 RDP 到机器没有任何问题,如上所述,我在 443 上的站点从未出现过问题......它只有端口 80。
我完全不知道要寻找/解决这个问题的方法。在这一点上的任何建议都将受到欢迎。
更新: 我将网络接口切换到服务器上的另一个 NIC 并看到同样的问题
TIA