ΠΛΗΡΟΦΟΡΙΕΣ: HTTP GET και HTTP POST είναι απενεργοποιημένες από προεπιλογή

Σύνοψη

Αυτό το άρθρο περιγράφει τις αλλαγές στο .NET Framework 1.1 που επηρεάζουν τη μέθοδο HTTP GET και τη μέθοδο HTTP POST σε ένα διακομιστή Web. Αυτό το άρθρο περιγράφει εναλλακτικούς τρόπους αντιμετώπισης για αυτήν τη νέα λειτουργικότητα.

Περισσότερες πληροφορίες

Το. Υπηρεσίες Web συνδεδεμένη NET υποστηρίζει HTTP GET, HTTP POST και πρωτοκόλλων SOAP. Από προεπιλογή, στο .NET Framework 1.0, ενεργοποιούνται όλα τα τρία πρωτόκολλα. Από προεπιλογή, στο .NET Framework 1.1, HTTP GET και HTTP POST είναι και τα δύο απενεργοποιημένα. Αυτό γίνεται για λόγους ασφαλείας.

Οι εφαρμογές που χρησιμοποιούν HTTP GET ή HTTP POST για να καλέσετε μια υπηρεσία Web αποτύχει κατά την αναβάθμιση της υπηρεσίας Web για το .NET Framework 1.1. Λάβετε αυτές τις εφαρμογές ένα
System.Net.WebException
μήνυμα σφάλματος που δηλώνει η μορφή της αίτησης δεν είναι αναγνωρίσιμη.

Σημειώστε ότι η φόρμα δοκιμής που βασίζονται σε HTML χρησιμοποιεί HTTP POST και επομένως η φόρμα δοκιμής που βασίζονται σε HTML δεν λειτουργεί στο .NET Framework 1.1. Αυτό ισχύει εκτός στο localhost, όπως σημειώνεται παρακάτω.

Το .NET Framework 1.1 ορίζει ένα νέο πρωτόκολλο που ονομάζεται HttpPostLocalhost. Από προεπιλογή, ενεργοποιείται αυτό το νέο πρωτόκολλο. Αυτό το πρωτόκολλο επιτρέπει την ενεργοποίηση των υπηρεσιών Web που χρησιμοποιούν αιτήματα HTTP POST από εφαρμογές στον ίδιο υπολογιστή. Αυτό ισχύει υπό τον όρο ότι η διεύθυνση URL ΔΗΜΟΣΊΕΥΣΗΣ χρησιμοποιεί http://localhost, http://hostname. Αυτό επιτρέπει στους προγραμματιστές υπηρεσίας Web για να χρησιμοποιήσετε τη φόρμα δοκιμής που βασίζονται σε HTML για να καλέσετε την υπηρεσία Web από τον ίδιο υπολογιστή όπου βρίσκεται η υπηρεσία Web.

Κατά την προσπάθειά σας να αποκτήσετε πρόσβαση στην υπηρεσία Web από έναν απομακρυσμένο υπολογιστή δεν βλέπετε το κουμπί Invoke. Και, λαμβάνετε το ακόλουθο μήνυμα λάθους:

Η φόρμα δοκιμής είναι διαθέσιμη μόνο για αιτήσεις από τον τοπικό υπολογιστή

Εναλλακτικός τρόπος αντιμετώπισης

HTTP GET και HTTP POST μπορεί να ενεργοποιηθεί με την επεξεργασία του αρχείου Web.config για την εικονική ρίζα όπου βρίσκεται η υπηρεσία Web. Η ακόλουθη ρύθμιση παραμέτρων επιτρέπει HTTP GET και HTTP POST:
<configuration>    <system.web>
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
</system.web>
</configuration>
Εναλλακτικά, μπορείτε να ενεργοποιήσετε αυτά τα πρωτόκολλα για όλες τις υπηρεσίες Web στον υπολογιστή με την επεξεργασία της ενότητας < πρωτόκολλα > στο Machine.config. Το ακόλουθο παράδειγμα δίνει τη δυνατότητα HTTP GET, POST του HTTP, καθώς και ΣΑΠΟΎΝΙ και HTTP POST από localhost:
<protocols><add name="HttpSoap"/>
<add name="HttpPost"/>
<add name="HttpGet"/>
<add name="HttpPostLocalhost"/>
<!-- Documentation enables the documentation/test pages -->
<add name="Documentation"/>
</protocols>

Αναφορές

Για περισσότερες πληροφορίες σχετικά με τη ρύθμιση παραμέτρων των υπηρεσιών Web, δείτε: το < πρωτόκολλα > στοιχείο στην τεκμηρίωση του .NET Framework 1.1:
http://msdn2.microsoft.com/en-us/library/ccbk8w5h(vs.71).aspx
Ιδιότητες

Αναγνωριστικό άρθρου: 819267 - Τελευταία αναθεώρηση: 17 Ιαν 2017 - Αναθεώρηση: 1

Σχόλια