Κατά την ανάπτυξη ενός νέου έργου, χρησιμοποιώντας asp.net βασική τεχνολογία, το παλιό έργο μπορεί να είναι μια υπηρεσία WCF που αναπτύχθηκε χρησιμοποιώντας το .NET Framework 4, επειδή το κόστος ανακατασκευής είναι πολύ υψηλό, είναι απαραίτητο να χρησιμοποιήσετε asp.net πυρήνα για να καλέσετε τη διεπαφή υπηρεσίας WCF.
Αρχικά, δημιουργήστε δύο νέα έργα:
ASP.NET Έργο Core 3.1: dotnet-core-call-wcf Έργο .NET Framework 4 (εφαρμογή υπηρεσίας WCF): schools-wcf-service
Το Visual Studio 2019 θέλει να δημιουργήσει μια υπηρεσία WCF, δεν μπορεί να βρει το πρότυπο, λύση:
Επιλέξτε Εγκατάσταση περισσότερων εργαλείων και δυνατοτήτων για να ανοίξετε το Visual Studio Installer. Επιλέξτε την καρτέλα Μεμονωμένα στοιχεία, κάντε κύλιση προς τα κάτω στις Δραστηριότητες ανάπτυξης, επιλέξτε Windows Communication Foundation και κάντε κλικ στην επιλογή Τροποποίηση.
Το WCF δημιουργεί δύο διεπαφές ως εξής:
Ο κώδικας υλοποίησης της διεπαφής έχει ως εξής:
Μια σύμβαση παροχής υπηρεσιών είναι μια συλλογή σχετικών λειτουργιών παροχής υπηρεσιών και όταν εφαρμόζουμε ένα ServiceContractAttribute σε μια διασύνδεση, του δίνουμε ένα χαρακτηριστικό σύμβασης παροχής υπηρεσιών. Ωστόσο, για έναν τέτοιο τύπο, το ιδίωμά του δεν γίνεται αυτόματα συμβατική λειτουργία υπηρεσίας και μόνο όταν εφαρμόζεται η δυνατότητα OperationContractAttribute μπορεί το αντίστοιχο μέλος της μεθόδου να γίνει λειτουργία υπηρεσίας στην οποία μπορείτε να έχετε πρόσβαση μέσω κλήσης υπηρεσίας.
Όταν ξεκινάτε το έργο wcf, θα εκτελέσει αυτόματα το WcfTestClient και θα προσπαθήσει να το καλέσει όπως φαίνεται στο παρακάτω σχήμα:
Χρησιμοποιήστε ASP.NET βασικά έργα για να καλέσετε υπηρεσίες WCF
Κάντε δεξί κλικ στην επιλογή Συνδεδεμένες υπηρεσίες, επιλέξτε την υπηρεσία στην οποία θέλετε να προσθέσετε μια σύνδεση και επιλέξτε Υπηρεσία WCF, όπως φαίνεται στην παρακάτω εικόνα:
Συμπληρωμένη διεύθυνση υπηρεσίας: http://localhost:3705/Service1.svc
Πιθανά σφάλματα:
Επειδή είναι αδύνατο να γράψετε τη διεύθυνση υπηρεσίας WCF μέχρι θανάτου, προσθέστε τον ακόλουθο κώδικα στο αρχείο appsettings.json:
Επεξεργαστείτε το αρχείο Startup.cs και καταχωρήστε την υπηρεσία WCF με τον ακόλουθο κώδικα:
Καλέστε την υπηρεσία wcf στον ελεγκτή HomeController, πρώτη έγχυση κατασκευαστή, ο κωδικός έχει ως εξής:
Κλήση της υπηρεσίας WCF:
Εκτελέστε τον ιστότοπο asp.net Core, το αποτέλεσμα είναι όπως φαίνεται παρακάτω:
Προσπαθούμε να τροποποιήσουμε την υπηρεσία WCF έτσι ώστε η διεπαφή να επιστρέφει το αποτέλεσμα μετά από 3 λεπτά και, στη συνέχεια, να επανεκκινήσουμε asp.net πυρήνα για να καλέσουμε την υπηρεσία WCF και το σφάλμα είναι το εξής:
AggregateException: One or more errors occurred. (The request channel timed out attempting to send after 00:01:00. Increase the timeout value passed to the call to Request or increase the SendTimeout value on the Binding. The time allotted to this operation may have been a portion of a longer timeout.) Αυτή τη στιγμή, πρέπει να τροποποιήσουμε το προεπιλεγμένο χρονικό όριο, να προσαρμόσουμε τη σύνδεση BasicHttpBinding και να επεξεργαστούμε ξανά το αρχείο Startup.cs, ως εξής:
Λήψη πηγαίου κώδικα:
Τουρίστες, αν θέλετε να δείτε το κρυφό περιεχόμενο αυτής της ανάρτησης, παρακαλώ Απάντηση
|