Отключение HTTP/2/SPDY в HTTP.SYS и IIS в Windows 10

При тестировании в Windows 10 мы видели много несовместимости с браузером, которых я раньше не видел с более ранними версиями Windows. Некоторые браузеры будут работать, но другие будут сообщать об ERR_SPDY_PROTOCOL_ERROR. Мой быстрый поиск этой проблемы показал, что я не один.

В моем приложении используются WWSAPI и HTTP.SYS с HTTPS (TLS). Кто-нибудь знает, как отключить SPDY/HTTP/2 в WWSAPI (который использует HTTP.SYS) в Windows 10?

Мне также хотелось бы получить полный обновленный список параметров реестра Windows 10 для HTTP.SYS.

См. ниже мой ответ на этот вопрос. Надеюсь, это тоже поможет другим.

Марк

Ответ 1

EDIT: отключение HTTP/2 значительно замедлит скорость вашего веб-сайта, это не постоянное решение. Проблема оказалась вызвана тем, что наш webapp отправил неверный заголовок аутентификации на сервер.

Чтобы отключить HTTP/2, см. ниже.

(ОП дал полезный ответ, но в вопросе. Я переместил ответ):

Я работал над своей проблемой HTTP/2, настроив Windows 10 HTTP.SYS в реестре отключить HTTP/2. Учитывая, что я не нашел информацию в любом месте, я думал, что поделюсь своим решением этой проблемы и здесь. я хотелось бы найти способ сделать это через WWSAPI.

Если я отключу поддержку SPDY в клиентском браузере, это сработает, но Я хотел отключить это на стороне сервера (HTTP.SYS в Windows 10) так что он не будет обсуждать HTTP/2, но будет использовать более старое совместимый HTTP (S).

Обнаружено два новых параметра реестра для HTTP.SYS в:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters

  • EnableHttp2Tls REG_DWORD 0
  • EnableHttp2Cleartext REG_DWORD 0

Добавление этих значений и установка как 0 в Windows 10 привели к HTTP/2/SPDY не согласовывается, и мой ERR_SPDY_PROTOCOL_ERROR проблемы исчезли, не требуя изменений конфигурации браузера. Я не предлагаю, чтобы что-то не так с Windows 10 HTTP/2, проблемы могут быть с некоторыми браузерами.

Это может работать и для IIS, но я не использую это, поэтому я не пробовал и в любом случае в IIS может быть лучший способ сделать это.

Надеюсь, что это тоже поможет другим.

Я также могу подтвердить это для IIS, но мне пришлось перезагрузить компьютер.