Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 20667|Отговор: 0

[ASP.NET] GET заявка "HTTP Грешка 400. URL адресът на заявката е невалиден"

[Копирай линк]
Публикувано в 4.07.2018 г. 9:53:58 ч. | | | |


Виждайки тази дезинформация, средностатистическият разработчик може да предположи две причини

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. Опитай пак, добре, няма грешка, перфектно решение





Предишен:Типът "Обект" се дефинира в нереферирана асемблея. Трябва да добавя отговор към програмата...
Следващ:Ionic Development Android App Practice (4): Позициониране на Baidu Map API
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com