Από το .NET Core cross-platform, τα έργα ASP.NET Core μπορούν να εκτελούνται τόσο σε Windows όσο και σε Linux και εάν αναπτυχθούν σε Windows, μπορούν να αναπτυχθούν σε IIS ή να εκτελεστούν απευθείας μέσω της γραμμής εντολών, ανεξάρτητα από τις υπηρεσίες IIS, λόγω της συμπερίληψης των κοντέινερ Kestrel στο ASP.NET Core.
Για περισσότερες πληροφορίες σχετικά με τον τρόπο ανάπτυξης εφαρμογών ASP.NET Core σε υπηρεσίες IIS, μπορείτε να ανατρέξετε στα εξής:
Το ASP.NET Core αναπτύσσεται στις υπηρεσίες IISΣε εξέλιξηκαιΕκτός διαδικασίαςΔύο μοντέλα φιλοξενίας
Πόροι:
Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Μοντέλο σε εξέλιξη
Από το ASP.NET Core 3.0,Η φιλοξενία κατά τη διαδικασία είναι ενεργοποιημένη από προεπιλογή για όλες τις εφαρμογές που έχουν αναπτυχθεί στις υπηρεσίες IIS, το αρχείο web.config μοιάζει με αυτό:
μπορεί να φανείhostingModel="σε επεξεργασία", ένα μοντέλο σε εξέλιξηΤο Kestrel δεν χρησιμοποιείται, αλλά αντ' αυτού χρησιμοποιεί το IISHttpServer() για να υλοποιήσει έναν νέο διακομιστή ιστού που φιλοξενείται απευθείας μέσα στο χώρο συγκέντρωσης εφαρμογών IIS, ο οποίος είναι κάπως παρόμοιος με τον τρόπο με τον οποίο εισήχθη η παραδοσιακή ASP.NET στις υπηρεσίες IIS.
Το παρακάτω διάγραμμα απεικονίζει τη σχέση μεταξύ των λειτουργικών μονάδων IIS, ASP.NET Core και των φιλοξενούμενων εφαρμογών κατά τη διεργασία:
Προσπαθώντας να αποκτήσετε πρόσβαση στον ιστότοπο, μπορείτε να δείτε τον διακομιστή μέσω της κεφαλίδας απόκρισης, όπως φαίνεται στην παρακάτω εικόνα:
Εξετάζοντας τις διαδικασίες μέσω του διαχειριστή εργασιών, υπάρχουν μόνο 2 διαδικασίες, όπως φαίνεται στο παρακάτω σχήμα:
Μοντέλο εκτός διαδικασίας
Αυτό το μοντέλο IIS λειτουργεί ως αντίστροφος διακομιστής μεσολάβησης και όταν λαμβάνει ένα αίτημα, πρέπει να το προωθήσει στην υπηρεσία Kestrel, η οποία είναι ένας διακομιστής ιστού πολλαπλών πλατφορμών ενσωματωμένος σε εφαρμογές ASP.NET Core.
Το παρακάτω διάγραμμα απεικονίζει τη σχέση μεταξύ των λειτουργικών μονάδων IIS, ASP.NET Core και των φιλοξενούμενων εφαρμογών εκτός διαδικασίας:
Τροποποιούμε το αρχείο web.config ως εξής:
Όταν έχουμε πρόσβαση στον ιστότοπο μέσω ενός προγράμματος περιήγησης, μπορούμε να δούμε ότι η τιμή διακομιστή της κεφαλίδας απόκρισης έχει γίνει Kestrel, όπως φαίνεται στο παρακάτω σχήμα:
Κοιτάζοντας ταυτόχρονα τον διαχειριστή εργασιών, διαπίστωσα ότι υπάρχουν 3 διαδικασίες, όπως φαίνεται στο παρακάτω σχήμα:
περίληψη
Στο μοντέλο διαχείρισης InProcess, τα αιτήματα και οι απαντήσεις παρέχονται μέσω w3wp.exe ή IISExpress, ενώ στη διαδικασία εργασίας OutOfProcess που εμπλέκεται, είναι dotnet.exe Στο διαχειριζόμενο μοντέλο InProcess, χρησιμοποιείται ένας μόνο διακομιστής ιστού, ενώ στο διαχειριζόμενο μοντέλο OutOfProcess, μπορούν να χρησιμοποιηθούν δύο διακομιστές ιστού.
Ο προφανής λόγος για τη χρήση του νέου μοντέλου In-Process είναι ότι είναι ταχύτερο και χρησιμοποιεί λιγότερους πόρους,Το διαχειριζόμενο μοντέλο InProcess παρέχει καλύτερες επιδόσειςΕπειδή εκτελείται απευθείας στη διαδικασία του χώρου συγκέντρωσης εφαρμογών IIS. Δεν υπάρχει εσωτερική κίνηση HTTP και γενικά έξοδα και τα αιτήματα διεκπεραιώνονται αμέσως.
|