Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 20667|Odpowiedź: 0

[ASP.NET] GET request "HTTP Error 400. URL żądania jest nieprawidłowy"

[Skopiuj link]
Opublikowano 04.07.2018 09:53:58 | | | |


Widząc tę dezinformację, przeciętny deweloper może zgadnąć dwa powody

1. W linku znajdują się specjalne znaki

2. Długość łącza jest zbyt długa(Wygląda na to, że długość nie jest winna, jest niejasna, zapomniałem)

Adres obrazu błędu jest następujący: http://{host}/SearchService. svc/rest/pic600x320/png/kv3hcxmnCmISVvFKojNBGpkN44MRx71vV4v7Qu7ikclbic2vX5Axnm8RxwhLoWyehsSz4J%C2% A72F6h4eQgvkrbzuKGR6y7sszK1KUY75RqxylZMumapwVQttfllaSPXwoRGEeVexDqjmMZSERPquL3uLZbv6Vxdx52nRDUW90SVVYeqkHZbx2w3T1coqt2v036tfaZ%C2%A72D8GBlPbIVJuhSFU5GA8116z8FkV4%C2% A72kDtsxSXy9XTFIziTToRpbQEkp7497O6q99

Następnie zaczęliśmy badać przyczyny błędów, na które mogliśmy natrafić

1. Sprawdź adres URL, nie ma znaków specjalnych (z wyjątkiem tego powodu)

2. URL na pierwszy rzut oka wydaje się bardzo długi, więc usuńmy połowę długości parametru i potem go poprośmy. W efekcie może się to udać, a następnie poprzez ciągłe dodawanie znaków okazuje się, że długość przekracza 339 i zgłasza ten błąd, a po 339 nie ma znaków specjalnych, więcUstaliliśmy, że przyczyną błędu powinna być zbyt długa strona URL

Kolejnym krokiem jest rozwiązanie odpowiednich problemów

Są też różne Baidu, sprawdź konfigurację związaną z modyfikacją limitu długości ciągu zapytań

Następnie zmodyfikuj web.config

1. Zmodyfikuj konfiguracje maxQueryStringLength i maxRequestLength w węźle httpRuntime

2. Zmodyfikuj węzeł system.webServer w następujący sposób

Zapisując i uruchamiając z oczekiwaniem, błędy pozostają te same i wydaje się, że nie ma to sensu

W tym momencie zacząłem się zastanawiać, dlaczego nie, czy nie wejdzie w skutk, myśląc, że może być wielu ludzi takich jak ja, myślących o globalnym ustawieniu IIS, czy to ustawienie nie zostanie nadpisane, nadal używamy wszystkich wartości zbiorów

Nie zgaduj, po prostu sprawdź (zwróć uwagę, że requestFiltering, który sprawdzasz, znajduje się pod system.webServer, nie patrz na zły węzeł)

Jeśli jest wyłączony, wartość overrideModeDefault to Deny, co oznacza, że nasza konfiguracja będzie oparta na konkretnej konfiguracji naszej strony.

Więc wszystko jest normalne, dlaczego to błąd?!

Wreszcie, przykuł moją uwagę powrót, który nie został zaadaptowany na stackoverflow

łączehttps://stackoverflow.com/questi ... is-invalid-in-iis-7



Mówiąc ogólnie, żądanie nie dotarło jeszcze do IIS i zostało zabite przez system operacyjny.

W tym czasie szukałem innego artykułu w Google, który odnosił się do technicznego wsparcia optycznego radia Microsoftu

Adres jest następującyhttps://support.microsoft.com/zh ... ettings-for-windows

Sednem tych dwóch artykułów jest to, że musimy zmodyfikować rejestr, a oba artykuły prawdopodobnie są modyfikowane przez następujące dwie wartości rejestru



Następnie spróbuj i przejdź do rejestru CMD="regedit="HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters

Kliknij prawym przyciskiem myszy na puste pole i wybierz wartość Dword, jak pokazano na zdjęciu



Utwórz nową nazwę o nazwie UrlSegmentMaxLength, ustaw wartość na 2048 i kliknij OK



Ustawienie UrlSegmentMaxCount jest takie samo jak powyżej, wartość to również Dword 2048, kliknij OK.

Modyfikacja może zadziałać tylko po ponownym uruchomieniu usługi HTTP

  • Kliknij Start, wpisz Cmd, a potem OK.
  • W wierszu poleceń wpisz net stop http i naciśnij Enter.
  • W wierszu poleceń wpisz net start http i naciśnij Enter.


Następnie zrestartuj IIS. Spróbuj ponownie, ok, bez błędu, idealne rozwiązanie





Poprzedni:Typ "Object" jest definiowany w niereferencyjnym asemblerze. Muszę dodać odpowiedź do programu...
Następny:Ionic Development Android App Practice (4): Baidu Map API Positioning
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com