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

Άποψη: 61848|Απάντηση: 3

[.NET Πυρήνας] ASP.NET Λεπτομερής επεξήγηση του Core Middleware

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 18/9/2019 11:35:59 π.μ. | | | |
Τι είναι το Middleware;

Το ενδιάμεσο λογισμικό είναι λογισμικό που συναρμολογείται σε αγωγούς εφαρμογών για τη διαχείριση αιτημάτων και απαντήσεων. Κάθε συστατικό:

  • Επιλέξτε εάν θα μεταβιβάσετε την αίτηση στο επόμενο στοιχείο στη διοχέτευση.
  • Η εργασία μπορεί να εκτελεστεί πριν και μετά την κλήση του επόμενου στοιχείου στη διοχέτευση.

Οι πληρεξούσιοι αιτήσεων χρησιμοποιούνται για τη δημιουργία μιας διοχέτευσης αιτήσεων που χειρίζεται κάθε αίτηση HTTP.

Οι πληρεξούσιοι αιτήσεων ρυθμίζονται χρησιμοποιώντας τις μεθόδους επέκτασης Εκτέλεση, Αντιστοίχιση και Χρήση. Ένας ξεχωριστός πληρεξούσιος αίτησης μπορεί να καθοριστεί σε μια ενσωματωμένη ανώνυμη μέθοδο (που ονομάζεται ενσωματωμένο ενδιάμεσο λογισμικό) ή μπορεί να οριστεί σε μια επαναχρησιμοποιήσιμη κλάση. Αυτές οι επαναχρησιμοποιήσιμες και οι ενσωματωμένες μέθοδοι ανωνυμοποίησης είναι ενδιάμεσο λογισμικό ή στοιχεία ενδιάμεσου λογισμικού. Κάθε στοιχείο ενδιάμεσου λογισμικού στη ροή αιτήματος είναι υπεύθυνο για την κλήση του επόμενου στοιχείου στη διοχέτευση και, εάν χρειάζεται, του βραχυκυκλώματος σύνδεσης.

Η μετεγκατάσταση λειτουργικών μονάδων HTTP σε ενδιάμεσο λογισμικό εξηγεί τη διαφορά μεταξύ ASP.NET Core και αγωγών αιτήματος σε προηγούμενες εκδόσεις (ASP.NET) και παρέχει περισσότερα παραδείγματα ενδιάμεσου λογισμικού.

Χρησιμοποιήστε το IApplicationBuilder για να δημιουργήσετε μια διοχέτευση ενδιάμεσου λογισμικού

Η διαδικασία αιτήματος ASP.NET Core αποτελείται από μια σειρά πληρεξουσίων αιτημάτων, όπως φαίνεται στην παρακάτω εικόνα (η διαδικασία εκτέλεσης ακολουθεί το μαύρο βέλος):

Κάθε πληρεξούσιος μπορεί να εκτελέσει ενέργειες πριν και μετά τον επόμενο πληρεξούσιο. Ο πληρεξούσιος μπορεί επίσης να αποφασίσει να μην μεταβιβάσει την αίτηση στον επόμενο πληρεξούσιο, κάτι που ονομάζεται βραχυκύκλωμα στη διοχέτευση αίτησης. Ένα βραχυκύκλωμα είναι συνήθως επιθυμητό γιατί αποφεύγει την περιττή εργασία. Για παράδειγμα, το ενδιάμεσο λογισμικό στατικών αρχείων μπορεί να επιστρέψει μια αίτηση για ένα στατικό αρχείο και να βραχυκυκλώσει την υπόλοιπη διοχέτευση. Οι πληρεξούσιοι χειρισμού εξαιρέσεων πρέπει να καλούνται νωρίς στη διοχέτευση, ώστε να μπορούν να εντοπίσουν εξαιρέσεις σε μεταγενέστερες διοχετεύσεις.

Το πιο απλό πράγμα είναι πιθανώς να ρυθμίσετε έναν εκπρόσωπο ASP.NET εφαρμογή Core για να χειρίζεται όλα τα αιτήματα. Αυτό το σενάριο δεν περιλαμβάνει την πραγματική διοχέτευση αίτησης. Αντίθετα, καλείται μια ανώνυμη μέθοδος για κάθε αίτημα HTTP.


Η πρώτη εφαρμογή. Εκτέλεση πληρεξουσίου τερματίζει τη διοχέτευση.

Υπάρχει κώδικας όπως αυτός:




Με πρόσβαση μέσω του προγράμματος περιήγησης, διαπιστώνεται ότι βρίσκεται πράγματι στην πρώτη εφαρμογή. Το Run τερματίζει τη διοχέτευση.



Μπορείτε να αναθέσετε πολλά αιτήματα με την εφαρμογή. Η χρήση συνδέεται μεταξύ τους. Η επόμενη παράμετρος αντιπροσωπεύει τον επόμενο πληρεξούσιο στη διοχέτευση. (Λάβετε υπόψη ότι μπορείτε να τερματίσετε τη διοχέτευση χωρίς να καλέσετε την επόμενη παράμετρο.) Συνήθως μπορείτε να εκτελέσετε ενέργειες πριν και μετά την επόμενη ανάθεση, όπως φαίνεται στο παρακάτω παράδειγμα:

Χρήση προγράμματος περιήγησης για πρόσβαση σε αποτελέσματα όπως:



Μπορεί να φανεί ότι η σειρά εκτέλεσης του αντιπροσώπου του αιτήματος ακολουθεί το παραπάνω διάγραμμα ροής.

Σημείωση:

Αφού σταλεί η απάντηση στον πελάτη, μην καλέσετε στη συνέχεια. Επίκληση。 Μετά την έναρξη της απόκρισης, οι αλλαγές στο HttpResponse θα δημιουργήσουν μια εξαίρεση. Για παράδειγμα, ο ορισμός κεφαλίδων απόκρισης, κωδικών κατάστασης κ.λπ. θα δημιουργήσει μια εξαίρεση. Γράψτε το σώμα της απάντησης μετά την επόμενη κλήση.

μπορεί να οδηγήσει σε παραβίαση της συμφωνίας. Για παράδειγμα, γράφοντας περισσότερο από το μήκος περιεχομένου που περιγράφεται στο content-length.

Η μορφοποίηση αποκριτικού περιεχομένου ενδέχεται να είναι κατεστραμμένη. Για παράδειγμα, γράψτε ένα υποσέλιδο HTML σε ένα αρχείο CSS.

Το HttpResponse.HasStarted είναι μια χρήσιμη υπόδειξη για να υποδείξει εάν έχει σταλεί μια κεφαλίδα απάντησης ή/και έχει γραφτεί το σώμα.


Ενσωματωμένο ενδιάμεσο λογισμικό

Το ASP.NET Core συνοδεύεται από τα ακόλουθα στοιχεία ενδιάμεσου λογισμικού:


Ενδιάμεσο λογισμικόπεριγραφή
Έλεγχος ταυτότηταςΔιατίθεται υποστήριξη ελέγχου ταυτότητας
ΚΟΡΣΡύθμιση παραμέτρων κοινής χρήσης πόρων μεταξύ τομέων
Προσωρινή αποθήκευση απόκρισηςΔιατίθεται υποστήριξη απόκρισης cache
Συμπίεση απόκρισηςΠαρέχετε υποστήριξη για συμπίεση απόκρισης
ΔρομολόγησηΟρισμός και περιορισμός δρομολόγησης αιτημάτων
ΣυνεδρίαΠαρέχει διαχείριση συνεδρίας χρήστη
Στατικά αρχείαΠαρέχει υποστήριξη για στατική περιήγηση σε αρχεία και καταλόγους
Ενδιάμεσο λογισμικό επανεγγραφής URLΧρησιμοποιείται για την επανεγγραφή διευθύνσεων URL και την αίτηση υποστήριξης για ανακατευθύνσεις





Προηγούμενος:Το νέο προϊόν της Baidu! Το One Moment Album αυτή τη στιγμή 1 εκατομμύριο χρήστες μπορούν να διεκδικήσουν απεριόριστο χώρο αποθήκευσης:
Επόμενος:Αγγλικά Επίπεδα 4 και 6 Κατανόηση Προφορικού Λόγου και Μεταπτυχιακές Εισαγωγικές Εξετάσεις Αγγλικού Λεξιλογίου Επανεξέταση Προφορική Ανταλλαγή Δεδομένων
Δημοσιεύτηκε στις 22/9/2021 8:47:00 μ.μ. |
Μάθε να μαθαίνεις...
Δημοσιεύτηκε στις 10/10/2021 6:55:42 μ.μ. |
Μάθετε να μαθαίνετε, στη θέση του αυτό το άρθρο άνοιξε μια συνδρομή
Δημοσιεύτηκε στις 10/10/2021 6:59:21 μ.μ. |
https://www.cnblogs.com/stulzq/p/7760648.html
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com