Отключение 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 ответ
РЕДАКТИРОВАТЬ: отключение HTTP/2 значительно замедлит скорость вашего сайта, это не постоянное решение. Проблема оказалась вызвана тем, что наше веб-приложение отправило неверный заголовок аутентификации на сервер.
Чтобы по-прежнему отключать 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, но мне пришлось перезагрузить компьютер.