在Windows 10中的HTTP.SYS和IIS中禁用HTTP / 2 / SPDY

在Windows 10上进行测试时,我们看到了许多浏览器不兼容的问题,这是我以前在Windows版本中没有见到的.有些浏览器可以使用,但其他浏览器会报告ERR_SPDY_PROTOCOL_ERROR.我对这个问题的快速搜索表明我并不孤单.

我的应用程序使用WWSAPI和HTTP.SYS与HTTPS(TLS).有谁知道如何在Windows 10上的WWSAPI(使用HTTP.SYS)中禁用SPDY / HTTP / 2?

我还想获得HTTP.SYS的最新Windows 10注册表设置列表.

请参阅下面的我对此的回答.希望这也有助于其他人.

标记

编辑:禁用HTTP / 2将显着降低您的网站的速度,这不是一个永久的解决方案.问题原因是我们的webapp向服务器发送了错误的身份验证标头.

要仍然禁用HTTP / 2,请参阅下文.

(OP提供了一个有用的答案,但在问题中.我提出了答案):

I did work around my HTTP/2 problem by configuring Windows 10 HTTP.SYS
in the registry to disable HTTP/2. Given that I didn’t find info
anywhere,I thought I’d share my solution to that problem here too. I
would like to find a way of doing this through WWSAPI though.

If I turned off SPDY support in the client browser,it would work but
I wanted to turn this off at the server side (HTTP.SYS on Windows 10)
so that it wouldn’t negotiate HTTP/2 but would use the older more
compatible HTTP(S).

discovered two new registry settings for HTTP.SYS in:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters

  • EnableHttp2Tls REG_DWORD 0
  • EnableHttp2Cleartext REG_DWORD 0

Adding these values and setting both to 0 in Windows 10 resulted in
HTTP/2 / SPDY not being negotiated and my ERR_SPDY_PROTOCOL_ERROR
problems went away without requiring browser configuration changes.
I’m not suggesting there is anything wrong with Windows 10 HTTP/2,the
problems may be with certain browsers.

This may work for IIS too,but I don’t use that so I haven’t tried and
in any case there may be a better way to do this in IIS.

Hope this helps others too.

我也可以确认这对IIS有帮助,但我不得不重新启动计算机.

相关文章

Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...
Windows文件操作基础代码 Windows下对文件进行操作使用的一段...
Winpcap基础代码 使用Winpcap进行网络数据的截获和发送都需要...
使用vbs脚本进行批量编码转换 最近需要使用SourceInsight查看...