Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 20667|Antwort: 0

[ASP.NET] GET-Anfrage "HTTP-Fehler 400. Die Anfrage-URL ist ungültig"

[Link kopieren]
Veröffentlicht am 04.07.2018 09:53:58 | | | |


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





Vorhergehend:Der Typ "Objekt" wird in einer unreferenzierten Assemblierung definiert. Muss eine Antwort zum Programm hinzufügen...
Nächster:Ionic Development Android App Practice (4): Baidu Map API Positionierung
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com