2015-07-30 13 views
10

Durante il test su Windows 10 abbiamo riscontrato numerose incompatibilità con il browser che non avevo mai visto prima con le versioni precedenti di Windows. Alcuni browser funzionerebbero, ma altri segnalerebbero ERR_SPDY_PROTOCOL_ERROR. La mia rapida ricerca di questo problema ha dimostrato che non ero solo.Disabilitazione di HTTP/2/SPDY in HTTP.SYS e IIS in Windows 10

La mia app utilizza WWSAPI e HTTP.SYS con HTTPS (TLS). Qualcuno sa come disabilitare SPDY/HTTP/2 in WWSAPI (che utilizza HTTP.SYS) su Windows 10?

Mi piacerebbe anche avere un elenco aggiornato di Windows 10 delle impostazioni del Registro di sistema per HTTP.SYS.

Vedere sotto per la mia risposta a questo. Spero che questo aiuti anche gli altri.

Mark

+2

Questo è un sito di domande e risposte. Quindi, se hai qualcosa in discussione su StackOverflow e non hai ancora una risposta, posta una domanda dove hai formulato il problema che avevi inizialmente, quindi posta una risposta a quella domanda in cui descrivi la soluzione. – Michael

+0

Separato dalla semplice disabilitazione di HTTP/2, mi piacerebbe capire perché il tuo WWSAPI sta generando ERR_SPDY_PROTOCOL_ERROR in (presumo) Chrome. Hai un esempio WWSAPI che mostra che sta succedendo? –

+0

Questo è un errore Chromium. Lo stiamo attualmente vedendo in Opera, Chrome e Vivaldi. Nel nostro caso, perché penso che qualcuno stia inviando un segnale, stiamo fornendo http2 quando non lo siamo. –

risposta

18

EDIT: disabilitazione/2 sarà rallentare in modo significativo la velocità del tuo sito web, questa non è una soluzione permanente HTTP. Il problema è stato causato dalla nostra webapp che inviava un'intestazione di autenticazione sbagliata al server.

Per disabilitare ancora HTTP/2, vedere di seguito.

(OP ha dato una risposta utile, ma la domanda che mi spostato la risposta.):

ho fatto il lavoro intorno al mio HTTP 2 problema/configurando Windows 10 HTTP.SYS nel Registro di sistema per disabilitare HTTP/2. Dato che non ho trovato informazioni su ovunque, ho pensato di condividere la mia soluzione a questo problema anche qui. I vorrebbe comunque trovare un modo per farlo attraverso WWSAPI.

Se ho spento il supporto SPDY nel browser client, che avrebbe funzionato, ma ho voluto girare questo fuori al lato server (HTTP.SYS su Windows 10) in modo che non avrebbe negoziato HTTP/2 ma userebbe il precedente più compatibile HTTP (S).

scoperto due nuove impostazioni del Registro per HTTP.SYS in:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters

  • EnableHttp2TlsREG_DWORD0
  • EnableHttp2CleartextREG_DWORD0

L'aggiunta di questi valori e l'impostazione sia a 0 in Windows 10 risultato in HTTP/2/SPDY non negoziato ei miei problemi ERR_SPDY_PROTOCOL_ERROR sono andati via senza richiedere modifiche alla configurazione del browser. Non sto suggerendo che ci sia qualcosa di sbagliato in Windows 10 HTTP/2, i problemi potrebbero essere con determinati browser.

Questo può funzionare anche per IIS, ma io non lo uso quindi non ho provato e in ogni caso ci può essere un modo migliore per farlo in IIS.

Spero che questo aiuti anche gli altri.

posso confermare che questo aiuta per IIS troppo, ma ho dovuto riavviare il computer.

+0

Dopo aver impostato i valori di registro e riavviato il mio computer, ho scoperto che la causa principale del mio problema SPDY era un reset della connessione proveniente dal server. –

+0

Questo ha funzionato per me! Grazie mille! – sshirley

+0

Anche se ora mi chiedo, cosa succede se vogliamo chiudere SPDY ma non HTTP/2? – sshirley

Problemi correlati