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
|