IIS 10 声称完全支持 HTTP/2。我想知道是否有办法在 IIS 10 上关闭 HTTP/2。
2 回答
要在 Windows 10 HTTP.SYS 上禁用 HTTP/2,请在 Windows 10 桌面的 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters 中设置以下注册表值
EnableHttp2Tls REG_DWORD 0
EnableHttp2Cleartext REG_DWORD 0
只有在 HTTP 失败时才需要其中的第二个。第一个是HTTPS。
这是旧的 - 但我想我会分享我的经验。当我们从服务器 2008 转换到 2016 时,我注意到了这一点,并且仅在我们的经典 asp 页面上。我注意到我将 response.buffer 设置为 true,然后使用响应标头等,最后发送 response.flush。
我看到 Chrome 只会在第一次调用时出现这个问题,如果我再次发送调用它就可以工作 - 那是因为它回退到 http 1.1。禁用 http2 有效,但这不是一个好的解决方案。
我在 response.flush 之后添加了 response.end,问题就消失了。所以把它当作它的价值——对我来说,它似乎与不结束响应有关,这在 http 1.1 中运行良好,但在 http2 中却没有。
也许这可以帮助其他人。