在Windows 10上进行测试时,我们发现了许多浏览器不兼容的情况,这是我在以前的Windows版本中从未见过的。有些浏览器可以工作,但其他浏览器会报告ERR_SPDY_PROTOCOL_ERROR。我对这个问题的快速搜索表明我不是一个人。
我的应用程序使用WWSAPI和HTTP。带有HTTPS (TLS)的SYS。有人知道如何在Windows 10上禁用WWSAPI(使用HTTP. sys)中的SPDY/HTTP/2吗?
我也想得到一个完整的最新的Windows 10的注册表设置列表为HTTP.SYS。
请看下面我对这个问题的回答。希望这对其他人也有帮助。
马克编辑:禁用HTTP/2将显著降低您网站的速度,这不是一个永久的解决方案。这个问题原来是由于我们的web应用程序向服务器发送了错误的身份验证头。
如果要禁用HTTP/2,请参见下文。
OP给出了一个有用的答案,但在这个问题上。我移动了答案):我确实通过配置Windows 10 HTTP解决了HTTP/2问题。SYS在注册表中禁用HTTP/2鉴于我没有找到信息在任何地方,我都想在这里分享我对这个问题的解决方案。我我想通过WWSAPI找到一种方法来做到这一点。
如果我在客户端浏览器中关闭SPDY支持,它将工作,但是我想在服务器端关闭它(HTTP。系统(Windows 10)这样它就不会协商HTTP/2,而是使用旧的HTTP/2兼容的HTTP (S) .
发现两个新的HTTP注册表设置。SYS:
HKEY_LOCAL_MACHINESystemCurrentControlSetServicesHTTPParameters
EnableHttp2Tls
REG_DWORD
0
EnableHttp2Cleartext
REG_DWORD
0
在Windows 10中添加这些值并将它们都设置为0导致HTTP/2/SPDY没有被协商,我的ERR_SPDY_PROTOCOL_ERROR不需要更改浏览器配置,问题就消失了。我并不是说Windows 10的HTTP/2有什么问题可能是某些浏览器出了问题。
这可能也适用于IIS,但我不使用它,所以我没有尝试和无论如何,在IIS中可能有更好的方法来做到这一点。
希望这对其他人也有帮助。
我可以确认这对IIS也有帮助,但是我必须重新启动我的计算机