Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 20667|Risposta: 0

[ASP.NET] Richiesta GET "HTTP Errore 400. L'URL della richiesta è invalido"

[Copiato link]
Pubblicato su 04/07/2018 09:53:58 | | | |


Vedendo questa disinformazione, lo sviluppatore medio potrebbe intuire due motivi

1. Ci sono caratteri speciali nel link

2. La lunghezza del collegamento è troppo lunga(Sembra che la lunghezza non sia la colpa, è vaga, me ne sono dimenticato)

L'indirizzo dell'immagine di errore è il seguente: http://{host}/SearchService. svc/rest/pic600x320/png/kv3hcxmnCmISVvFKojNBGpkN44MRx71vV4v7Qu7ikclbic2vX5Axnm8RxwhLoWyehsSz4J%C2% A72F6h4eQgvkrbzuKGR6y7sszK1KUY75RqxylZMumapwVQttfllaSPXwoRGEeVexDqjmMZSERPquL3uLZbv6Vxdx52nRDUW90SVVYeqkHZbx2w3T1coqt2v036tfaZ%C2%A72D8GBlPbIVJuhSFU5GA8116z8FkV4%C2% A72kDtsxSXy9XTFIziTToRpbQEkp7497O6q99

Successivamente, abbiamo iniziato a indagare le ragioni degli errori che potevamo incontrare

1. Controlla l'URL, non ci sono caratteri speciali (escludendo questo motivo)

2. L'URL sembra molto lungo a prima vista, quindi eliminiamo metà della lunghezza del parametro e poi lo richiediamo. Il risultato è che può avere successo, e poi aggiungendo costantemente caratteri si scopre che la lunghezza supera 339 e questo errore viene segnalato, e non ci sono caratteri speciali dopo 339, quindiAbbiamo praticamente stabilito che la causa dell'errore dovrebbe essere che l'URL è troppo lungo

Il passo successivo è risolvere i problemi rilevanti

Poi ci sono vari Baidu, controlla la configurazione relativa alla modifica del limite di lunghezza della querystring

Poi modifica il web.config

1. Modificare le configurazioni maxQueryStringLength e maxRequestLength sotto il nodo httpRuntime

2. Modifica il nodo system.webServer come segue

Salvando e correndo con anticipazione, gli errori restano gli stessi, e sembra che non serva a nulla

In quel momento ho iniziato a chiedermi, perché no, se non avrà effetto, pensando che ci potrebbero essere molte persone come me, pensando all'impostazione globale dell'IIS, se questa impostazione non sarà sovrascritta, usiamo ancora tutti i valori di insieme

Non indovinare, controlla semplicemente (nota che il requestFiltering che controlli si trova sotto system.webServer, non guardare il nodo sbagliato)

Se è disattivata, il valore di overrideModeDefault è Deny, il che significa che la nostra configurazione sarà basata sulla configurazione specifica del nostro sito.

Quindi tutto è normale, perché è un errore?!

Infine, un revert che non è stato adottato su StackOverflow ha attirato la mia attenzione

collegamentohttps://stackoverflow.com/questi ... is-invalid-in-iis-7



In termini generali, la richiesta non è ancora arrivata a IIS ed è stata bloccata dal sistema operativo.

In quel momento, ho cercato un altro articolo su Google, che ricollegava al supporto tecnico radio ottico di Microsoft

L'indirizzo è il seguentehttps://support.microsoft.com/zh ... ettings-for-windows

Il succo dei due articoli è che dobbiamo modificare il registro, e probabilmente i due articoli sono modificati dai seguenti due valori del registro



Poi, prova e vai al registro CMD="regedit="HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters

Clicca con il tasto destro sull'area vuota e seleziona il valore Dword, come mostrato nell'immagine



Crea un nuovo nome chiamato UrlSegmentMaxLength, imposta il valore a 2048 e clicca su OK



L'impostazione di UrlSegmentMaxCount è la stessa di sopra, il valore è anche Dword 2048, clicca OK.

La modifica può entrare in vigore solo se il servizio HTTP viene riavviato

  • Clicca su Start, digita Cmd e poi clicca OK.
  • Al prompt dei comandi, digita net stop http e premi Invio.
  • Al prompt dei comandi, digita net start http e premi Invio.


Poi riavvia IIS. Riprova, ok, nessun errore, soluzione perfetta





Precedente:Il tipo "Object" è definito in un assembly non riferito. Devo aggiungere una risposta al programma...
Prossimo:Pratica di sviluppo Ionic per app Android (4): Posizionamento API della mappa Baidu
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com