Wenn der durchschnittliche Entwickler diese Fehlinformationen sieht, könnte er zwei Gründe dafür vermuten
1. Es gibt Sonderzeichen im Link
2. Die Verbindungslänge ist zu lang(Es scheint, dass die Länge nicht schuld ist, sie ist vage, ich habe es vergessen.)
Die Adresse des Fehlerbilds lautet wie folgt: http://{host}/SearchService. svc/rest/pic600x320/png/kv3hcxmnCmISVvFKojNBGpkN44MRx71vV4v7Qu7ikclbic2vX5Axnm8RxwhLoWyehsSz4J%C2% A72F6h4eQgvkrbzuKGR6y7sszK1KUY75RqxylZMumapwVQttfllaSPXwoRGEeVexDqjmMZSERPquL3uLZbv6Vxdx52nRDUW90SVVYeqkHZbx2w3T1coqt2v036tfaZ%C2%A72D8GBlPbIVJuhSFU5GA8116z8FkV4%C2% A72kDtsxSXy9XTFIziTToRpbQEkp7497O6q99
Als Nächstes begannen wir, die Gründe für die möglichen Fehler zu untersuchen
1. Überprüfen Sie die URL, es gibt keine Sonderzeichen (ohne diesen Grund)
2. Die URL sieht auf den ersten Blick sehr lang aus, also löschen wir die Hälfte der Länge des Parameters und fordern sie dann an. Das Ergebnis ist, dass es erfolgreich sein kann, und durch ständiges Hinzufügen von Zeichen stellt man fest, dass die Länge 339 überschreitet und diesen Fehler meldet, und nach 339 gibt es keine Sonderzeichen mehr, alsoWir haben im Grunde festgestellt, dass die Ursache des Fehlers darin liegen sollte, dass die URL zu lang ist。
Der nächste Schritt ist, die relevanten Probleme zu lösen
Dann gibt es verschiedene Baidu, überprüfen Sie die Konfiguration, die mit der Änderung der Längengrenze der Abfragestrings zusammenhängt.
Dann ändere ich die web.config
1. Ändere die maxQueryStringLength- und maxRequestLength-Konfigurationen unter dem httpRuntime-Knoten
2. Modifizieren Sie den system.webServer-Knoten wie folgt
Speichern und mit Erwartung laufen, sind die Fehler immer noch gleich, und es scheint, als hätte es keinen Sinn
In diesem Moment begann ich mich zu fragen, warum nicht, wird es nicht wirken, da ich dachte, dass es vielleicht viele Menschen wie mich gibt, die an die globale Einstellung von IIS denken, wird diese Einstellung nicht überschrieben, wir verwenden immer noch alle Mengenwerte
Rate nicht, schau es dir einfach an (beachte, dass das RequestFiltering, das du überprüfst, unter system.webServer liegt, schau nicht auf den falschen Knoten).
Wenn es ausgeschaltet ist, lautet der Wert von OverrideModeDefault Deny, was bedeutet, dass unsere Konfiguration auf der spezifischen Konfiguration unserer Seite basiert.
Also ist alles normal, warum ist das ein Fehler?!
Schließlich fiel mir ein Revert auf, der auf stackoverflow nicht übernommen wurde,
verbindenhttps://stackoverflow.com/questi ... is-invalid-in-iis-7
Grob gesagt hat die Anfrage IIS noch nicht erreicht und wird vom Betriebssystem gestoppt.
Zu diesem Zeitpunkt suchte ich bei Google nach einem weiteren Artikel, der auf Microsofts technischen Support für optische Funk verlinkte
Die Adresse lautet wie folgthttps://support.microsoft.com/zh ... ettings-for-windows
Der Kern der beiden Artikel ist, dass wir das Register ändern müssen, und die beiden Artikel werden wahrscheinlich durch die folgenden zwei Werte des Registers modifiziert
Probier es als Nächstes aus und gehe zur Registry CMD="regedit="HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Rechtsklick auf den leeren Bereich und wähle den Dword-Wert aus, wie auf dem Bild gezeigt
Erstellen Sie einen neuen Namen namens UrlSegmentMaxLength, setzen Sie den Wert auf 2048 und klicken Sie auf OK
Die Einstellung von UrlSegmentMaxCount ist die oben beschriebene, der Wert ist ebenfalls Dword 2048, klicke OK.
Die Änderung kann nur wirksam werden, wenn der HTTP-Dienst neu gestartet wird
- Klicke auf Start, gib Cmd ein und klicke dann OK.
- Geben Sie in der Eingabeaufforderung net stop http ein und drücken Sie Enter.
- Geben Sie in der Eingabeaufforderung net start http ein und drücken Sie Enter.
Dann starte IIS neu. Versuchen Sie es nochmal, okay, kein Fehler, perfekte Lösung
|