Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 20667|Απάντηση: 0

[ASP.NET] GET αίτημα "Σφάλμα HTTP 400. Η διεύθυνση URL αιτήματος δεν είναι έγκυρη"

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 4/7/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

  • Κάντε κλικ στο κουμπί Έναρξη, πληκτρολογήστε Cmd και, στη συνέχεια, κάντε κλικ στο κουμπί OK.
  • Στη γραμμή εντολών, πληκτρολογήστε net stop http και πατήστε Enter.
  • Στη γραμμή εντολών, πληκτρολογήστε net start http και πατήστε Enter.


Στη συνέχεια, επανεκκινήστε τις υπηρεσίες IIS. Δοκιμάστε ξανά, εντάξει, χωρίς σφάλμα, τέλεια λύση





Προηγούμενος:Ο τύπος "Αντικείμενο" ορίζεται σε μια συναρμολόγηση χωρίς αναφορά. Πρέπει να προσθέσετε μια απάντηση στο πρόγραμμα...
Επόμενος:Πρακτική εφαρμογής Android Ionic Development (4): Τοποθέτηση API χάρτη Baidu
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com