不定期网络中断:某些图片和 JS 无法加载

不定期网络中断:某些图片和 JS 无法加载

第一次遇到 ServerFault,我遇到了一个小难题。

几个月以来,我们的互联网连接一直存在问题。

环境:

Servers: 2 Terminal Servers as an RDSFarm running Windows Server 2008 R2
Browser: Internet Explorer 9
Test/debug browser: Chrome
AntiVirus: Avast 7.0.1455

问题:

网站有时会拒绝加载,显示页面无法访问的错误,或者某些图片无法完全加载。此外,经过检查,多个 .js 文件也无法加载。

在此处输入图片描述

发现以及我们的尝试:

第一印象:

当我在这段时间内使用 Chrome 时,网站在多次刷新后会返回 net:: Error 101 或 Error 103。在其他时候,如果没有给出错误,则多个图像不可见并显示 X 图像。IE 只是说无法显示页面。

在此处输入图片描述

使用 Chrome 开发者工具:

控制台显示有几种资源不可用,但当我右键单击缺失的图像并选择“显示图片”时,它们会显示出来。当我通过直接 URL 打开图片时,它们也会显示出来。

在此处输入图片描述

通过 Chrome 开发者工具进行审核:

当页面出现错误时,我对其进行了审核,发现一些 .js 文件以及一些 .png、.jpg 和 .gif 文件无法加载。Chrome 和 IE 加载的图像不同。

在此处输入图片描述 在此处输入图片描述

混淆的 JS 文件和 Avast:

检查之后,我发现大多数 .js 文件都是混淆的 JS 文件,而且由于我们运行的是 Avast 7.0.1455,所以我怀疑 Web Shield 是否把事情搞乱了。

再说一次,它只发生在第一个 TS 上,而不是第二个。

于是我关闭了 WebShield 一天,看看是否有所改善。但并没有。一切又回到原点。

文件缓存无过期时间:

其中一些未加载的文件被指示没有缓存过期。

缓存:

我们的一位系统管理员不久前将 IE 缓存大小改为 10MB,我认为这可能是问题的根源。他将其改回 65MB 左右,但人们仍然在使用图像时遇到问题。这种情况在 1 TS 和 Chrome 中仍然会发生,所以我不认为规定缓存的组策略会影响 Chrome,不是吗?

在此处输入图片描述

网络问题: 我也认为这可能是网络或路由问题,但两个 TS 服务器都在同一个组合 NIC 上,而另一个运行良好。

帮助!

如果有人知道在哪里可以找到问题,或者需要更多信息,请帮助我。这个问题已经困扰我好几个星期了。

编辑和更新

问题仍然存在,并且仅出现在我们的 2 个终端服务器上。

以下是我和同事目前所做的事情:

  • 关闭一台服务器上的防病毒软件一天,看看是否不会发生这种情况。 问题依然存在。

  • 检查 MTU 大小
    这是默认设置(忘记了具体值:P) 问题依然存在。

  • 已安装 Windows 更新、IE10 问题依然存在。

  • 检查是否有任何代理。
    AV 安装了代理,也就是所谓的 WebShield。我们在一台服务器上禁用了该服务和程序一天。 问题依然存在。

  • 重新安装 NIC 团队,因为它变得混乱了。 (还重新安装了 NIC 驱动程序)问题依然存在。

  • 检查组策略 显然,在两个终端服务器中,都有一个本地机器策略,它启用了 IE 中的首选项模式,该模式进行了一些奇怪的自定义。禁用它,然后...问题依然存在。

现在人们甚至在从 SharePoint 上传和下载文件时遇到了问题,我们使用的很多网站因此无法运行。

预感

这要么与 WebShield 有关,当它发现异常时会断开连接,但当 AV 关闭时不应该发生这种情况。

可能是重定向出了问题,或者是缓存出了问题。奇怪的是,Chrome 以及 IE9 和 IE10 中也出现了同样的问题。

如果有人有任何想法,我将不胜感激。

感谢 HopelessN00b 对我的帮助!

更新:

在我们的原始 TS 之一上,事件查看器中出现了一些错误,如下所示:

Error: (04/04/2013 08:44:42 AM) (Source: Application Error) (User: )
Description: Faulting application name: iexplore.exe, version: 9.0.8112.16470, time stamp: 0x510c8801
Faulting module name: MSHTML.dll, version: 9.0.8112.16470, time stamp: 0x510c9046
Exception code: 0xc0000005
Fault offset: 0x002d0174
Faulting process id: 0x21728
Faulting application start time: 0xiexplore.exe0
Faulting application path: iexplore.exe1
Faulting module path: iexplore.exe2
Report Id: iexplore.exe3

有时会出现这种情况,但显然这是因为一些 WYSE 终端太旧了(希望很快用 Raspberry Pi 替换它们)。

Error: (04/04/2013 11:21:46 AM) (Source: TermDD) (User: )
Description: The Terminal Server security layer detected an error in the protocol stream and has disconnected the client.
Client IP: [IP REDACTED].

希望这可以帮助。

答案1

尝试不绑定 NIC。只设置一个 NIC,看看是否仍然有效。如果有效,请确保您的交换机端口配置和 Teaming 配置一致。

答案2

要在没有准确错误消息的情况下诊断问题,您需要运行:

  • 客户端的 tcpdump(wireshark 显示效果很好)
  • 服务器端的 tcpdump(查看服务器实际发送的内容)。
  • 等待问题发生
  • 检查数据包,查看通信中断的位置。如果您需要帮助检查跟踪,请将其写入文件。

我怀疑你会发现一个未答复的 DNS 查询。如果你的 ISP 通过代理过滤你的流量,你应该能够在流量中找到它的踪迹,尤其是通过比较服务器端捕获和客户端捕获。

如果存在网络质量问题,您可以使用 traceroute 更直接地观察它。如果网络转储显示通信顺利,但浏览器无法显示提供的数据,则问题出在终端服务器上的桌面滑稽。

您应该在建立不起作用的浏览器连接的终端服务器上运行数据包捕获。

答案3

ISP 已“解决”了这些问题。所有图片和 JS 等内容已正常显示一周。ISP 已通过在各个站点之间放置代理解决了无法访问的一个外部站点的问题。

不幸的是,发生这种情况的具体原因或方式仍然是个谜,但可以肯定的是我的 ISP 进行了某些更改,从而产生了这种情况。

感谢大家的支持,尽管很多答案都非常有用,但我无法选择其中一个是正确的,因此这是我自己的。

再次感谢您付出的时间和精力,我希望其他人也不必再面对这样的网络陌生感。

相关内容