Βλέποντας αυτήν την παραπληροφόρηση, ο μέσος προγραμματιστής μπορεί να μαντέψει δύο λόγους
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. Δοκιμάστε ξανά, εντάξει, χωρίς σφάλμα, τέλεια λύση
|