Ob upoštevanju teh napačnih informacij lahko povprečen razvijalec ugiba dva razloga
1. V povezavi so posebni znaki
2. Dolžina povezave je predolga(Zdi se, da dolžina ni kriva, je nejasna, pozabil sem)
Naslov slike napake je naslednji: http://{host}/SearchService. svc/rest/pic600x320/png/kv3hcxmnCmISVvFKojNBGpkN44MRx71vV4v7Qu7ikclbic2vX5Axnm8RxwhLoWyehsSz4J%C2% A72F6h4eQgvkrbzuKGR6y7sszK1KUY75RqxylZMumapwVQttfllaSPXwoRGEeVexDqjmMZSERPquL3uLZbv6Vxdx52nRDUW90SVVYeqkHZbx2w3T1coqt2v036tfaZ%C2%A72D8GBlPbIVJuhSFU5GA8116z8FkV4%C2% A72kDtsxSXy9XTFIziTToRpbQEkp7497O6q99
Nato smo začeli raziskovati razloge za napake, na katere smo lahko naleteli
1. Preverite URL, ni posebnih znakov (razen tega razloga)
2. URL se na prvi pogled zdi zelo dolg, zato izbrišimo polovico dolžine parametra in ga nato zahtevamo. Rezultat je, da je lahko uspešen, nato pa z nenehnim dodajanjem znakov ugotovimo, da dolžina presega 339 in poroča o tej napaki, poleg tega pa po 339 ni posebnih znakov, tako daV bistvu smo ugotovili, da je vzrok napake predolg URL。
Naslednji korak je reševanje ustreznih problemov
Nato obstajajo različni Baidu, preverite konfiguracijo, povezano s spreminjanjem omejitve dolžine poizvedbenega niza
Nato spremeni web.config
1. Spremenite konfiguraciji maxQueryStringLength in maxRequestLength pod vozliščem httpRuntime
2. Spremenite vozlišče system.webServer na naslednji način
Shranjujem in izvajam z napetim pričakovanjem, napake pa so še vedno enake, in zdi se, da ni nič uporabnega
Takrat sem se začel spraševati, zakaj ne, ali ne bo začelo veljati, razmišljajoč, da je morda veliko ljudi, kot sem jaz, ki razmišljajo o globalnem okolju IIS, ali ta nastavitev ne bo preglasena, saj še vedno uporabljamo vse vrednosti nastavljenih
Ne ugibaj, samo preveri (upoštevaj, da je requestFiltering, ki ga preveriš, pod system.webServer, ne glej napačnega vozlišča).
Če je izklopljena, je vrednost overrideModeDefault Deny, kar pomeni, da bo naša konfiguracija temeljila na specifični konfiguraciji naše strani.
Torej je vse normalno, zakaj je to napaka?!
Nazadnje me je pritegnila povračilna sprememba, ki ni bila sprejeta na stackoverflow
povezavahttps://stackoverflow.com/questi ... is-invalid-in-iis-7
Približno povedano, zahteva še ni dosegla IIS in jo operativni sistem uniči.
Takrat sem iskal še en članek na Googlu, ki je povezoval Microsoftovo tehnično podporo za optični radio
Naslov je naslednjihttps://support.microsoft.com/zh ... ettings-for-windows
Bistvo obeh členov je, da moramo spremeniti register, in oba članka sta verjetno spremenjena z naslednjima dvema vrednostima registra
Nato poskusite in pojdite v register CMD="regedit="HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Z desnim klikom na prazno območje izberite vrednost Dword, kot je prikazano na sliki
Ustvarite novo ime z imenom UrlSegmentMaxLength, nastavite vrednost na 2048 in kliknite OK
Nastavitev UrlSegmentMaxCount je enaka kot zgoraj, vrednost je prav tako Dword 2048, kliknite OK.
Sprememba lahko začne veljati le, če se HTTP storitev ponovno zažene
- Kliknite Start, vpišite Cmd in nato OK.
- V ukazni vrstici vpišite net stop http in pritisnite Enter.
- V ukazni vrstici vpišite net start http in pritisnite Enter.
Nato ponovno zaženi IIS. Poskusi znova, v redu, brez napake, popolna rešitev
|