簡體   English   中英

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

[英]Disabling HTTP/2 / SPDY in HTTP.SYS and IIS in Windows 10

在 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給出了一個有用的答案,但在問題中。我移動了答案):

我確實通過在注冊表中配置 Windows 10 HTTP.SYS 來禁用 HTTP/2 來解決我的 HTTP/2 問題。 鑒於我沒有在任何地方找到信息,我想我也會在這里分享我對這個問題的解決方案。 不過,我想找到一種通過 WWSAPI 執行此操作的方法。

如果我在客戶端瀏覽器中關閉 SPDY 支持,它會起作用,但我想在服務器端關閉它(Windows 10 上的 HTTP.SYS),這樣它就不會協商 HTTP/2,但會使用更舊的更兼容HTTP(S)。

在以下位置發現 HTTP.SYS 的兩個新注冊表設置:

HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Services\\HTTP\\Parameters

  • 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 也有幫助,但我必須重新啟動計算機

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM