När man ser denna felaktiga information kan den genomsnittlige utvecklaren gissa två orsaker
1. Det finns specialtecken i länken
2. Länklängden är för lång(Det verkar som att längden inte är felet, den är vag, jag glömde)
Adressen till felbilden är följande: http://{host}/SearchService. svc/rest/pic600x320/png/kv3hcxmnCmISVvFKojNBGpkN44MRx71vV4v7Qu7ikclbic2vX5Axnm8RxwhLoWyehsSz4J%C2% A72F6h4eQgvkrbzuKGR6y7sszK1KUY75RqxylZMumapwVQttfllaSPXwoRGEeVexDqjmMZSERPquL3uLZbv6Vxdx52nRDUW90SVVYeqkHZbx2w3T1coqt2v036tfaZ%C2%A72D8GBlPbIVJuhSFU5GA8116z8FkV4%C2% A72kDtsxSXy9XTFIziTToRpbQEkp7497O6q99
Därefter började vi undersöka orsakerna till de fel vi kunde stöta på
1. Kontrollera URL:en, det finns inga specialtecken (uteslut denna anledning)
2. URL:en ser väldigt lång ut vid första anblicken, så låt oss ta bort halva parameterns längd och sedan begära den. Resultatet är att det kan lyckas, och genom att ständigt lägga till tecken upptäcks att längden överstiger 339 och rapporterar detta fel, och det finns inga specialtecken efter 339, såVi har i princip kommit fram till att orsaken till felet bör vara att URL:en är för lång。
Nästa steg är att lösa de relevanta problemen
Sedan finns det olika Baidu, kontrollera konfigurationen som är relaterad till att ändra gränsen för frågesträngarnas längd
Sedan modifierar du web.config
1. Modifiera maxQueryStringLength och maxRequestLength-konfigurationerna under httpRuntime-noden
2. Modifiera system.webServer-noden enligt följande
Jag sparar och kör med förväntan men felen är fortfarande desamma, och det verkar som att det inte finns någon mening
Vid det här laget började jag undra, varför inte, kommer det inte att träda i kraft, tänkte att det kanske finns många som jag, tänkande på IIS globala inställning, kommer denna inställning inte att överskridas, vi använder fortfarande alla mängdvärden
Gissa inte, kolla bara in det (notera att requestFiltering du kollar finns under system.webServer, titta inte på fel nod)
Om den är avstängd är värdet på overrideModeDefault Deny, vilket betyder att vår konfiguration kommer att baseras på den specifika konfigurationen av vår webbplats.
Så allt är normalt, varför är det ett fel?!
Till slut fångade en återställning som inte antogs på stackoverflow min uppmärksamhet
länkhttps://stackoverflow.com/questi ... is-invalid-in-iis-7
Grovt sett har förfrågan ännu inte nått IIS och avbryts av operativsystemet.
Vid det här tillfället sökte jag efter en annan artikel på Google, som länkade till Microsofts tekniska support för optisk radio
Adressen är som följerhttps://support.microsoft.com/zh ... ettings-for-windows
Kärnan i de två artiklarna är att vi behöver ändra registret, och de två artiklarna modifieras troligen av följande två värden i registret
Nästa steg är att prova och gå till registret CMD="regedit="HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Högerklicka på det tomma området och välj Dword-värdet, som visas på bilden
Skapa ett nytt namn som heter UrlSegmentMaxLength, sätt värdet till 2048 och klicka på OK
Inställningen för UrlSegmentMaxCount är densamma som ovan, värdet är också Dword 2048, klicka OK.
Ändringen kan endast träda i kraft om HTTP-tjänsten startas om
- Klicka på Start, skriv Cmd och klicka sedan på OK.
- Vid kommandoprompten, skriv net stop http och tryck på Enter.
- Vid kommandoprompten, skriv net start http och tryck på Enter.
Sedan startar du om IIS. Försök igen, okej, inget fel, perfekt lösning
|