一、打开Internet 信息服务 (IIS) 管理器

如果您使用的是 Windows Server:

在任务栏上,单击“服务器管理器”“工具”,然后单击“Internet 信息服务 (IIS) 管理器”

选择服务器,如下面的172_17_0_8,然后双击“管理”区域(一般在最后一格)中的“配置编辑器”

二、在配置编辑器中,展开该部分system.applicationHost,然后选择webLimitsminBytesPerSecond的值240变为0。

三、在“操作”窗格中,单击“应用”

显示如何使用配置编辑器配置动态站点激活的屏幕截图。

四、对我来说,修复方法是将minBytesPerSecond,IIS 设置为0system.applicationHost/webLimits此设置可以在IIS 的配置编辑器中找到。默认情况下它设置为240

在此输入图像描述

事实证明,如果服务器到客户端的数据吞吐量低于特定限制,某些网络服务器将切断与客户端的连接。这是为了防止“慢的”拒绝服务攻击。比如wordpress因为有些资源在国外导致访问缓慢。或者当无辜用户同时请求许多资源(例如单个页面上有大量图像)时,也可能会触发此限制,并且服务器被迫为每个请求分配过多的带宽,从而导致或更多请求低于吞吐量限制,这会导致服务器切断连接并net::ERR_HTTP2_PROTOCOL_ERROR在 Chrome 中显示。

例如,假设您一次请求 10 个 GIF 图像,每个 GIF 为 10 MB(总共 100 MB)。如果您从服务器的下载速度为每秒 1MB,您的浏览器将必须以某种方式将该 1MBps 分配给 10 张图像。现在,这里变得有趣了,因为带宽的分配方式似乎是随机的:

  1. 您的浏览器可能会在图像之间平均分配带宽,从而为每个图像分配 0.1MBps。所有下载速度均低于minBytesPerSecond240 字节的默认 IIS 限制,因此所有 GIF 下载均成功。
  2. 您的浏览器可能会以 0.2MBps 的速度优先考虑前 5 个,并将后 5 个以 0MBps 的速度“暂停”,以便在前 5 个之后下载。但是,由于 0MBps 低于 240 字节的默认 IIS 限制,因此服务器会切断minBytesPerSecond与剩余的下载。

我能够通过以下步骤阻止连接被切断:

  1. 我使用 Chrome 的网络日志导出工具来chrome://net-export/查看ERR_HTTP2_PROTOCOL_ERROR错误背后的具体原因。我启动了日志,重现了错误,然后停止了日志。
  2. 我将日志导入https://netlog-viewer.appspot.com/#import的日志查看器中,并看到一个标题为 的有趣事件HTTP2_SESSION_RECV_RST_STREAM,其中包含错误代码8 (CANCEL)
在此输入图像描述
  1. 我对术语“RST_STREAM”(这似乎是“重置流”的缩写形式)进行了一些谷歌搜索,并发现一些人在谈论名为 IIS 设置的讨论minBytesPerSecond(此处讨论: https://social.msdn.microsoft.com/Forums/en-US/aeb01c46-bcdf-40ed-a417-8a3558221137)。我还发现了另一个讨论,其中存在一些关于是否minBytesPerSecond旨在防止慢速 HTTP DoS(慢速滴注)攻击的争论(此处讨论:IIS 8.5 低 minBytesPerSecond 不适用于慢速 HTTP POST)。无论如何,我了解到 IIS 使用minBytesPerSecond如果连接无法维持最小吞吐量,则确定是否取消连接。这在以下情况下是相关的:单个用户向大型资源发出许多请求,并且每个新连接最终都会导致所有其他未完成的连接挨饿,甚至某些连接可能会低于阈值minBytesPerSecond
  2. 为了确认服务器由于minBytesPerSecond错误而取消请求,我检查了服务器的HTTPERR日志(位于 )c:\windows\system32\logfiles\httperr。果然,我打开该文件并进行了“MinBytesPerSecond”的文本搜索,其中有大量条目。
在此输入图像描述
  1. 因此,在我将 更改为 后minBytesPerSecond0我不再能够重现该ERR_HTTP2_PROTOCOL_ERROR错误。因此,该ERR_HTTP2_PROTOCOL_ERROR错误似乎是由我的服务器 (IIS) 取消请求引起的,因为我的服务器的吞吐量低于阈值minBytesPerSecond

因此,对于您现在正在阅读本文的所有人来说,如果您没有使用 IIS,也许有一个与最小吞吐量相关的类似设置,您可以尝试看看它是否可以消除错误ERR_HTTP2_PROTOCOL_ERROR

0

评论0

请先
高清正式版 L23G101 建筑结构常用节点构造图集.pdf
高清正式版 L23G101 建筑结构常用节点构造图集.pdf
10分钟前 有人购买 去瞅瞅看

社交账号快速登录

微信扫一扫关注
扫码关注后会自动登录网站