Étant donné que .NET Core est multiplateforme, ASP.NET projets Core peuvent fonctionner à la fois sur Windows et Linux, et s’ils sont déployés sur Windows, ils peuvent être déployés sur IIS ou exécutés directement via la ligne de commande, indépendamment des services IIS, grâce à l’inclusion de conteneurs Kestrel dans ASP.NET Core.
Pour plus d’informations sur la manière de déployer ASP.NET applications Core dans les services IIS, vous pouvez vous référer aux points suivants :
ASP.NET Core est déployé dans IISEn cours de traitementetHors processusDeux modèles hôtes
Ressources:
La connexion hyperlientérée est visible.
La connexion hyperlientérée est visible.
Modèle en cours de processus
Depuis ASP.NET Core 3.0,L’hébergement en processus est activé par défaut pour toutes les applications déployées sur IIS, le fichier web.config ressemble à ceci :
VisiblehostingModel="inprocess », un modèle en cours de processusLe crécerelle n’est pas utilisé, mais utilise à la place IISHttpServer() pour implémenter un nouveau serveur web hébergé directement dans le pool d’applications IIS, ce qui est quelque peu similaire à la façon dont la ASP.NET traditionnelle a été introduite dans IIS.
Le diagramme suivant illustre la relation entre IIS, ASP.NET modules Core et les applications hébergées en cours de traitement :
En essayant d’accéder au site, vous pouvez voir le serveur via l’en-tête de la réponse, comme montré sur l’image ci-dessous :
En regardant les processus via le gestionnaire des tâches, il n’y en a que 2, comme montré dans la figure ci-dessous :
Modèle hors processus
Ce modèle IIS agit comme un proxy inverse, et lorsqu’il reçoit une requête, il doit la transférer vers le service Kestrel, qui est un serveur web multiplateforme intégré dans ASP.NET applications Core.
Le diagramme suivant illustre la relation entre IIS, ASP.NET modules Core et les applications hébergées hors processus :
Nous modifions le fichier web.config comme suit :
Lorsque nous accédons au site via un navigateur, nous pouvons voir que la valeur serveur de l’en-tête de réponse est devenue Kestrel, comme montré dans la figure ci-dessous :
En regardant le gestionnaire des tâches en même temps, j’ai constaté qu’il y a 3 processus, comme montré dans la figure ci-dessous :
résumé
Dans le modèle géré InProcess, les requêtes et réponses sont fournies via w3wp.exe ou IISExpress, tandis que dans le processus travailleur OutOfProcess, c’est dotnet.exe Dans le modèle géré InProcess, un seul serveur web est utilisé, tandis que dans le modèle géré OutOfProcess, deux serveurs web peuvent être utilisés.
La raison évidente d’utiliser le nouveau modèle en cours est qu’il est plus rapide et consomme moins de ressources,Le modèle géré InProcess offre de meilleures performancesParce qu’il s’exécute directement dans le processus du pool d’applications IIS. Il n’y a pas de trafic HTTP interne ni de surcharge, et les requêtes sont traitées immédiatement.
|