Tämän väärän tiedon nähdessään keskiverto kehittäjä saattaa arvata kaksi syytä
1. Linkissä on erikoishahmoja
2. Linkin pituus on liian pitkä(Näyttää siltä, että pituus ei ole vika, se on epämääräinen, unohdin)
Virhekuvan osoite on seuraava: http://{host}/SearchService. svc/rest/pic600x320/png/kv3hcxmnCmISVvFKojNBGpkN44MRx71vV4v7Qu7ikclbic2vX5Axnm8RxwhLoWyehsSz4J%C2% A72F6h4eQgvkrbzuKGR6y7sszK1KUY75RqxylZMumapwVQttfllaSPXwoRGEeVexDqjmMZSERPquL3uLZbv6Vxdx52nRDUW90SVVYeqkHZbx2w3T1coqt2v036tfaZ%C2%A72D8GBlPbIVJuhSFU5GA8116z8FkV4%C2% A72kDtsxSXy9XTFIziTToRpbQEkp7497O6q99
Seuraavaksi aloimme tutkia virheiden syitä, joita saattoi kohdata,
1. Tarkista URL, siinä ei ole erityisiä merkkejä (pois lukien tämä syy)
2. URL näyttää ensi silmäyksellä todella pitkältä, joten poistetaan puolet parametrin pituudesta ja pyydetään se. Tulos on, että se onnistuu, ja sitten jatkuvasti lisäämällä merkkejä huomataan, että pituus ylittää 339 ja raportoi tämän virheen, eikä erikoismerkkejä ole 339:n jälkeen, jotenPäätimme käytännössä, että virheen syynä pitäisi olla URL-osoitteen liian pitkä。
Seuraava askel on ratkaista olennaiset ongelmat
Sitten on erilaisia Baiduja, tarkista konfiguraatio, joka liittyy kyselymerkkijonon pituusrajan muokkaamiseen
Sitten muokkaa web.config-tiedostoa
1. Muokkaa maxQueryStringLength- ja maxRequestLength-konfiguraatioita httpRuntime-solmussa
2. Muokkaa system.webServer-solmua seuraavasti
Tallentaen ja ajeten odotuksella, virheet ovat edelleen samat, eikä niistä tunnu olevan hyötyä
Tässä vaiheessa aloin miettiä, miksei, eikö se vaikuttaisi, ajatellen, että saattaa olla monia kaltaisiani ihmisiä, jotka ajattelevat IIS:n globaalia asetelmaa, eikö tätä asetusta ohitetaan, käytämme silti kaikkia asetettuja arvoja
Älä arvaa, tarkista se (huomaa, että tarkistamasi requestFiltering löytyy system.webServeristä, älä katso väärää solmua)
Jos se on pois päältä, overrideModeDefaultin arvo on Kieltäy, mikä tarkoittaa, että konfiguraatiomme perustuu sivustomme erityiseen kokoonpanoon.
Joten kaikki on normaalia, miksi se on virhe?!
Lopuksi palautus, jota ei otettu käyttöön Stackoverflowssa, kiinnitti huomioni
linkkihttps://stackoverflow.com/questi ... is-invalid-in-iis-7
Karkeasti ottaen pyyntö ei ole vielä saavuttanut IIS:ää ja käyttöjärjestelmä tuhoaa sen.
Tänä aikana etsin Googlesta toista artikkelia, joka linkitti Microsoftin optisen radion tekniseen tukeen
Osoite on seuraavahttps://support.microsoft.com/zh ... ettings-for-windows
Näiden kahden artikkelin ydin on, että rekisteriä täytyy muuttaa, ja näitä kahta artikkelia todennäköisesti muokataan seuraavilla kahdella rekisterin arvolla
Seuraavaksi kokeile ja siirry rekisteriin CMD="regedit="HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Napsauta oikealla tyhjää aluetta ja valitse Dword-arvo, kuten kuvassa näkyy
Luo uusi nimi nimeltä UrlSegmentMaxLength, aseta arvoksi 2048 ja klikkaa OK
UrlSegmentMaxCount -asetus on sama kuin yllä, arvo on myös Dword 2048, klikkaa OK.
Muutos voi astua voimaan vain, jos HTTP-palvelu käynnistetään uudelleen
- Klikkaa Start, kirjoita Cmd ja sitten OK.
- Komentokehotteessa kirjoita net stop http ja paina Enter.
- Komentokehotteessa kirjoita net start http ja paina Enter.
Sitten käynnistä IIS uudelleen. Yritä uudelleen, ok, ei virhettä, täydellinen ratkaisu
|