Redzot šo dezinformāciju, vidusmēra izstrādātājs var uzminēt divus iemeslus
1. Saitē ir īpašas rakstzīmes
2. Saites garums ir pārāk garš(Šķiet, ka garums nav vaina, tas ir neskaidrs, es aizmirsu)
Kļūdas attēla adrese ir šāda: http://{host}/SearchService. svc/rest/pic600x320/png/kv3hcxmnCmISVvFKojNBGpkN44MRx71vV4v7Qu7ikclbic2vX5Axnm8RxwhLoWyehsSz4J%C2% A72F6h4eQgvkrbzuKGR6y7sszK1KUY75RqxylZMumapwVQttfllaSPXwoRGEeVexDqjmMZSERPquL3uLZbv6Vxdx52nRDUW90SVVYeqkHZbx2w3T1coqt2v036tfaZ%C2%A72D8GBlPbIVJuhSFU5GA8116z8FkV4%C2% A72kDtsxSXy9XTFIziTToRpbQEkp7497O6q99
Pēc tam mēs sākām izpētīt kļūdu iemeslus, ar kuriem mēs varētu saskarties
1. Pārbaudiet URL, nav speciālo rakstzīmju (izslēdziet šo iemeslu)
2. URL no pirmā acu uzmetiena izskatās patiešām garš, tāpēc izdzēsīsim pusi no parametra garuma un pēc tam pieprasīsim to. Rezultāts ir tāds, ka tas var būt veiksmīgs, un tad, pastāvīgi pievienojot rakstzīmes, tiek konstatēts, ka garums pārsniedz 339 un ziņo par šo kļūdu, un pēc 339 nav speciālo rakstzīmju, tāpēcMēs būtībā noteicām, ka kļūdas cēlonis ir pārāk garš URL。
Nākamais solis ir atrisināt attiecīgās problēmas
Tad ir dažādi Baidu, pārbaudiet konfigurāciju, kas saistīta ar vaicājuma virknes garuma ierobežojuma modificēšanu
Pēc tam modificējiet web.config
1. Modificējiet konfigurācijas maxQueryStringLength un maxRequestLength mezglā httpRuntime
2. Modificējiet system.webServer mezglu šādi
Saglabājot un darbojoties ar gaidāmību, kļūdas joprojām ir tādas pašas, un šķiet, ka nav jēgas
Šajā laikā es sāku domāt, kāpēc ne, vai tas nestāsies spēkā, domājot, ka var būt daudz tādu cilvēku kā es, domājot par IIS globālo iestatījumu, vai šis iestatījums netiks ignorēts, mēs joprojām izmantojam visas noteiktās vērtības
Neuzminiet, vienkārši pārbaudiet to (ņemiet vērā, ka pārbaudītais pieprasījumsFiltrēšana atrodas zem system.webServer, neskatieties uz nepareizo mezglu)
Ja tas ir izslēgts, overrideModeDefault vērtība ir Noraidīt, kas nozīmē, ka mūsu konfigurācija būs balstīta uz mūsu vietnes konkrēto konfigurāciju.
Tātad viss ir normāli, kāpēc tā ir kļūda?!
Visbeidzot, manu uzmanību piesaistīja atgriešanās, kas netika pieņemta stackoverflow
saiknehttps://stackoverflow.com/questi ... is-invalid-in-iis-7
Aptuveni runājot, pieprasījums vēl nav sasniedzis IIS, un operētājsistēma to nogalina.
Šajā laikā es meklēju citu rakstu Google, kas bija saistīts ar Microsoft optisko radio tehnisko atbalstu
Adrese ir šādahttps://support.microsoft.com/zh ... ettings-for-windows
Abu rakstu būtība ir tāda, ka mums ir jāmaina reģistrs, un abi raksti, iespējams, tiek modificēti ar šādām divām reģistra vērtībām
Pēc tam izmēģiniet to un dodieties uz reģistru CMD="regedit="HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Ar peles labo pogu noklikšķiniet uz tukšā apgabala un atlasiet Dword vērtību, kā parādīts attēlā
Izveidojiet jaunu nosaukumu ar nosaukumu UrlSegmentMaxLength, iestatiet vērtību uz 2048 un noklikšķiniet uz Labi
UrlSegmentMaxCount iestatījums ir tāds pats kā iepriekš, vērtība ir arī Dword 2048, noklikšķiniet uz Labi.
Modifikācija var stāties spēkā tikai tad, ja HTTP pakalpojums tiek restartēts
- Noklikšķiniet uz Sākt, ierakstiet Cmd un pēc tam noklikšķiniet uz Labi.
- Komandu uzvednē ierakstiet net stop http un nospiediet taustiņu Enter.
- Komandu uzvednē ierakstiet net start http un nospiediet taustiņu Enter.
Pēc tam restartējiet IIS. Mēģiniet vēlreiz, labi, bez kļūdām, ideāls risinājums
|