Når man ser denne feilinformasjonen, kan den gjennomsnittlige utvikleren gjette to grunner
1. Det er spesialtegn i lenken
2. Lenkelengden er for lang(Det virker som lengden ikke er skylden, den er vag, jeg glemte det)
Adressen til feilbildet er som følger: http://{host}/SearchService. svc/rest/pic600x320/png/kv3hcxmnCmISVvFKojNBGpkN44MRx71vV4v7Qu7ikclbic2vX5Axnm8RxwhLoWyehsSz4J%C2% A72F6h4eQgvkrbzuKGR6y7sszK1KUY75RqxylZMumapwVQttfllaSPXwoRGEeVexDqjmMZSERPquL3uLZbv6Vxdx52nRDUW90SVVYeqkHZbx2w3T1coqt2v036tfaZ%C2%A72D8GBlPbIVJuhSFU5GA8116z8FkV4%C2% A72kDtsxSXy9XTFIziTToRpbQEkp7497O6q99
Deretter begynte vi å undersøke årsakene til feilene vi kunne støte på
1. Sjekk URL-en, det finnes ingen spesialtegn (unntak denne grunnen)
2. URL-en ser veldig lang ut ved første øyekast, så la oss slette halvparten av lengden på parameteren og deretter be om den. Resultatet er at det kan lykkes, og ved å stadig legge til tegn, finner man at lengden overstiger 339 og rapporterer denne feilen, og det finnes ingen spesialtegn etter 339, såVi konkluderte i hovedsak med at årsaken til feilen burde være at URL-en er for lang。
Neste steg er å løse de relevante problemene
Deretter finnes det ulike Baidu, sjekk konfigurasjonen knyttet til å endre grensen for spørringsstrenglengden
Deretter endrer du web.config
1. Endre maxQueryStringLength og maxRequestLength-konfigurasjonene under httpRuntime-noden
2. Endre system.webServer-noden som følger
Når jeg lagrer og kjører med forventning, er feilene fortsatt de samme, og det virker som det ikke er noe poeng
På dette tidspunktet begynte jeg å lure på, hvorfor ikke, vil det ikke få effekt, tenkte at det kanskje finnes mange som meg, tenkte på den globale innstillingen til IIS, vil ikke denne innstillingen bli overstyrt, vi bruker fortsatt alle mengdeverdiene
Ikke gjett, bare sjekk det ut (merk at requestFiltering du sjekker ligger under system.webServer, ikke se på feil node)
Hvis den er av, er verdien for overrideModeDefault Deny, noe som betyr at konfigurasjonen vår vil være basert på den spesifikke konfigurasjonen på nettstedet vårt.
Så alt er normalt, hvorfor er det en feil?!
Til slutt fanget en tilbakestilling som ikke ble tatt i bruk på stackoverflow oppmerksomheten min
lenkehttps://stackoverflow.com/questi ... is-invalid-in-iis-7
Grovt sett har forespørselen ennå ikke nådd IIS og blir stoppet av operativsystemet.
På dette tidspunktet søkte jeg etter en annen artikkel på Google, som lenket til Microsofts tekniske støtte for optisk radio
Adressen er som følgerhttps://support.microsoft.com/zh ... ettings-for-windows
Kjernen i de to artiklene er at vi må endre registeret, og de to artiklene er sannsynligvis modifisert av følgende to verdier i registeret
Prøv deretter og gå til registeret CMD="regedit="HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Høyreklikk på det tomme området og velg Dword-verdien, som vist på bildet
Lag et nytt navn kalt UrlSegmentMaxLength, sett verdien til 2048, og klikk OK
Innstillingen for UrlSegmentMaxCount er den samme som ovenfor, verdien er også Dword 2048, klikk OK.
Endringen kan bare tre i kraft hvis HTTP-tjenesten startes på nytt
- Klikk Start, skriv Cmd, og klikk deretter OK.
- Ved kommandoprompten skriver du net stop http og trykker Enter.
- Ved kommandoprompten skriver du net start http og trykker Enter.
Deretter starter du IIS på nytt. Prøv igjen, ok, ingen feil, perfekt løsning
|