web-dev-qa-db-ja.com

HTTP.SYSおよびIIS Windows 10でのHTTP / 2 / SPDYの無効化

Windows 10でテストしたところ、以前のバージョンのWindowsでは見られなかった多くのブラウザーの非互換性がありました。一部のブラウザーは機能しますが、他のブラウザーはERR_SPDY_PROTOCOL_ERRORを報告します。この問題をすばやく検索したところ、私だけではないことがわかりました。

私のアプリはHTTPS(TLS)でWWSAPIとHTTP.SYSを使用しています。 Windows 10でWWSAPI(HTTP.SYSを使用)でSPDY/HTTP/2を無効にする方法を知っている人はいますか?

また、HTTP.SYSのレジストリ設定の完全な最新のWindows 10リストを取得したいです。

これに対する私の答えについては、以下を参照してください。これが他の人にも役立つことを願っています。

マーク

13
MarkB_V

編集:HTTP/2を無効にすると、Webサイトの速度が大幅に低下します。これは永続的な解決策ではありません。この問題は、Webアプリケーションが誤った認証ヘッダーをサーバーに送信したことが原因であることが判明しました。

それでもHTTP/2を無効にするには、以下を参照してください。

(OPは役立つ回答を提供しましたが、質問では。私は回答を移動しました):

レジストリでWindows 10 HTTP.SYSを構成してHTTP/2を無効にすることで、HTTP/2の問題を回避しました。どこにも情報が見つからなかったので、この問題の解決策もここで共有したいと思いました。 WWSAPIを使用してこれを行う方法を見つけたいと思います。

クライアントブラウザーでSPDYサポートをオフにすると機能しますが、サーバー側(Windows 10のHTTP.SYS)でオフにして、HTTP/2をネゴシエートせずに、互換性のある古いバージョンを使用するようにしましたHTTP(S)。

次の場所でHTTP.SYSの2つの新しいレジストリ設定を発見しました。

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters

  • EnableHttp2TlsREG_DWORD0
  • EnableHttp2CleartextREG_DWORD0

Windows 10でこれらの値を追加して両方を0に設定すると、HTTP/2/SPDYがネゴシエートされず、ブラウザーの構成を変更せずにERR_SPDY_PROTOCOL_ERRORの問題が解消されました。 Windows 10 HTTP/2に問題があることを示唆しているわけではありません。問題は特定のブラウザーにある可能性があります。

これはIIS=でも機能する可能性がありますが、私はそれを使用していないため、試したことがなく、IISでこれを行うためのより良い方法があるかもしれません。

これが他の人にも役立つことを願っています。

これがIISにも役立つことを確認できますが、コンピュータを再起動する必要がありました。

21
Jan Willem B