Виждайки тази дезинформация, средностатистическият разработчик може да предположи две причини
1. В линка има специални знаци
2. Дължината на връзката е твърде дълга(Изглежда, че дължината не е вина, тя е неясна, забравих)
Адресът на изображението на грешката е следният: http://{host}/SearchService. svc/rest/pic600x320/png/kv3hcxmnCmISVvFKojNBGpkN44MRx71vV4v7Qu7ikclbic2vX5Axnm8RxwhLoWyehsSz4J%C2% A72F6h4eQgvkrbzuKGR6y7sszK1KUY75RqxylZMumapwVQttfllaSPXwoRGEeVexDqjmMZSERPquL3uLZbv6Vxdx52nRDUW90SVVYeqkHZbx2w3T1coqt2v036tfaZ%C2%A72D8GBlPbIVJuhSFU5GA8116z8FkV4%C2% A72kDtsxSXy9XTFIziTToRpbQEkp7497O6q99
След това започнахме да изследваме причините за грешките, които можем да срещнем
1. Проверете URL адреса, няма специални знаци (изключение на тази причина)
2. URL-то изглежда много дълго на пръв поглед, така че нека изтрием половината дължина на параметъра и после да го поискаме. Резултатът е, че може да бъде успешен, а след постоянно добавяне на знаци се установява, че дължината надвишава 339 и се докладва тази грешка, а след 339 няма специални знаци, така чеОсновно определихме, че причината за грешката трябва да е, че URL-то е твърде дълго。
Следващата стъпка е да се решат съответните проблеми
След това има различни Baidu, проверете конфигурацията, свързана с модифициране на лимита за дължината на заявката
След това модифицирай web.config
1. Променете конфигурациите maxQueryStringLength и maxRequestLength под httpRuntime възела
2. Модифицирайте възела system.webServer по следния начин
Запазвайки и пускайки с очакване, грешките остават същите и изглежда, че няма смисъл
В този момент започнах да се чудя защо не, няма ли да влезе в сила, мислейки си, че може да има много хора като мен, които мислят за глобалната настройка на IIS, няма ли тази настройка да бъде превзета, ние все още използваме всички зададени стойности
Не гадайте, просто го проверете (имайте предвид, че requestFiltering, който проверявате, се намира под system.webServer, не гледайте грешния възел).
Ако е изключен, стойността на overrideModeDefault е Deny, което означава, че нашата конфигурация ще се базира на конкретната конфигурация на нашия сайт.
Значи всичко е нормално, защо е грешка?!
Накрая, едно връщане, което не беше прието в stackoverflow, привлече вниманието ми
връзкаhttps://stackoverflow.com/questi ... is-invalid-in-iis-7
Грубо казано, заявката все още не е достигнала IIS и е унищожена от операционната система.
По това време потърсих друга статия в Google, която имаше линк към техническата поддръжка на оптичното радио на Microsoft
Адресът е следниятhttps://support.microsoft.com/zh ... ettings-for-windows
Същността на двете статии е, че трябва да модифицираме регистъра, а двете статии вероятно са променени от следните две стойности на регистъра
След това опитайте и отидете в регистъра CMD="regedit="HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Кликнете с десен бутон върху празното поле и изберете стойността Dword, както е показано на снимката
Създайте ново име, наречено UrlSegmentMaxLength, задайте стойността на 2048 и кликнете OK
Настройката на UrlSegmentMaxCount е същата като по-горе, стойността също е Dword 2048, кликни OK.
Промяната може да влезе в сила само ако HTTP услугата бъде рестартирана
- Кликни Start, въведе Cmd и след това избери OK.
- В командния ред напишете net stop http и натиснете Enter.
- В командния ред напишете net start http и натиснете Enter.
После рестартирайте IIS. Опитай пак, добре, няма грешка, перфектно решение
|