Comment le modèle d'hébergement principal Asp.Net est-il utilisé dans les applications Web?



Le noyau Asp.net a une amélioration significative du modèle d'hébergement. Il était prévu dans les versions antérieures d'héberger les applications Web Asp.net Core via des serveurs Web proxy tels que IIS sous Windows, Apache ou NGINX. Cependant, le nouveau noyau Asp.net 2.2 permet d'héberger directement l'application Asp.net dans Windows dans IIS sans les exigences du serveur externe. Ainsi, cela augmente le débit à l'aide d'un mécanisme d'hébergement In-Process simple.

Modèles d'hébergement dans ASP.NET Core

ASP.NET est une technologie de Microsoft qui vous permet de créer des pages dynamiques du côté du serveur Web.

L'hébergement ASP.NET est entièrement intégré aux logiciels basés sur Windows ainsi qu'avec le système d'exploitation lui-même. Cette technologie est considérée comme assez sûre et fiable, ainsi que facile à utiliser. Il est principalement utilisé pour le développement de produits intégrés.

Les modèles d'hébergement dans ASP.NET Core sont de deux types, à savoir l'hébergement en cours et l'hébergement hors processus. Avant ASP.Net Core 2.2, il n'y avait qu'un seul modèle d'hébergement, qui est l'hébergement hors processus, mais en raison des performances, le modèle d'hébergement In-Process dans les versions Asp.net core 2.2 est introduit.

Introduction du modèle d'hébergement en cours dans Asp.net Core

Les versions précédentes d'ASP.NET Core en nécessitaient une pour héberger l'application dans IIS à l'aide d'un modèle d'hébergement hors processus qui procède par proxy via IIS. Les demandes qui atteignent IIS ou IIS Express sont transmises à l'application Web ASP.NET Core exécutée dans Kestrel Web Server. Cependant, avec le nouvel hébergement In-process, un seul serveur est utilisé pour l'hébergement comme IIS, Nginx ou Linux. Cela signifie qu'au lieu de transférer les demandes à Kestrel, une nouvelle implémentation de serveur Web (IISHttpServer) est hébergée directement à l'intérieur du pool d'applications IIS, qui servira la demande. Avec ASP.NET Core 3.1, le modèle d'hébergement en cours est utilisé comme modèle par défaut chaque fois que vous développez une nouvelle application à l'aide d'un modèle existant.

Apparemment, ce modèle d'hébergement a un débit beaucoup plus élevé et une amélioration des performances par rapport au modèle d'hébergement hors processus.

Modèle d'hébergement hors processus

Dans les modèles d'hébergement hors processus, vous pouvez soit utiliser le serveur Kestrel directement en tant que serveur face aux demandes des utilisateurs, soit déployer l'application dans IIS qui agira comme un serveur proxy et enverra des demandes au serveur Kestrel interne. Dans ce type de modèle d'hébergement, vous avez deux options d'hébergement, à savoir l'utilisation de Kestrel et de Proxy Server:

1. Utilisation de Kestrel

En cela, Kestrel lui-même agit comme un serveur de périphérie qui serveur directement les demandes des utilisateurs, ce qui signifie que l'on ne peut utiliser le serveur Kestrel que pour l'application.

2. Utilisation d'un serveur proxy

En raison des limitations du serveur Kestrel, on ne peut pas l'utiliser dans toutes les applications. Dans de tels cas, il faut utiliser des serveurs puissants comme IIS, Apache ou NGINX. Donc, dans cette situation, ce serveur agit comme un serveur proxy de réserve qui redirige chaque demande vers le serveur Kestrel interne où l'application s'exécute. Ici, deux serveurs tels que IIS et Kestrel sont en cours d'exécution.

Ce modèle d'hébergement est un modèle par défaut pour toutes les applications implémentées dans la version antérieure de .NET Core 2.2. L'une des limites de l'utilisation de ce type, comme la lenteur des performances.

Dernières pensées:

Selon les faits, la plupart des sociétés de développement Web ASP.Net souhaitent certainement utiliser le modèle d'hébergement In-Process. Puisqu'il consomme moins de ressources et offre de bonnes performances. Comme il n'a pas besoin d'un processus supplémentaire pour Kestrel et il évite également une communication supplémentaire entre IIS et Kestrel. Cependant, il existe des cas où l'on peut vouloir choisir l'hébergement hors processus, comme dans le cas de l'hébergement de la même application Web sous Windows et Linux. Lorsqu'il s'agit d'héberger l'application sur d'autres plateformes, Kestrel est le principal mécanisme utilisé pour gérer les requêtes HTTP sur toutes les plateformes.

Cependant, exécuter In-Process sur IIS est le meilleur moyen, sauf si vous avez une exigence très spécifique pour Kestrel.

Crédit photo principal: Photo de Farzad Nazifi sur Unsplash




commentaires (0)

laissez un commentaire