488 votes

Quelle est la différence entre le mode pipeline "classique" et "intégré" dans IIS7 ?

J'ai déployé une application ASP.NET MVC la nuit dernière et j'ai découvert qu'il est moins difficile de déployer une application avec IIS7 en mode intégré. Ma question est la suivante : quelle est la différence ? Et quelles sont les implications de l'utilisation de l'un ou de l'autre ?

642voto

Mehrdad Afshari Points 204872

Le mode classique (le seul mode dans IIS6 et les versions inférieures) est un mode dans lequel IIS ne fonctionne que directement avec les extensions et les filtres ISAPI. En fait, dans ce mode, ASP.NET est simplement une extension ISAPI (aspnet_isapi.dll) et un filtre ISAPI (aspnet_filter.dll). IIS traite simplement ASP.NET comme un plugin externe implémenté dans ISAPI et travaille avec lui comme une boîte noire (et seulement lorsqu'il est nécessaire de transmettre la requête à ASP.NET). Dans ce mode, ASP.NET n'est pas très différent de PHP ou d'autres technologies pour IIS.

Le mode intégré, quant à lui, est un nouveau mode dans IIS7 où le pipeline IIS est étroitement intégré (c'est-à-dire qu'il est exactement le même) que le pipeline de requête ASP.NET. ASP.NET peut voir toutes les demandes qu'il veut et manipuler les choses en cours de route. ASP.NET n'est plus traité comme un plugin externe. Il est complètement mélangé et intégré à IIS. Dans ce mode, ASP.NET HttpModule ont en fait presque autant de pouvoir qu'un filtre ISAPI et ASP.NET HttpHandler peuvent avoir des capacités presque équivalentes à celles d'une extension ISAPI. Dans ce mode, ASP.NET est fondamentalement une partie de IIS.

115voto

BrainCoder Points 666

Mode pool d'applications intégré

Lorsqu'un pool d'applications est en mode intégré, vous pouvez tirer profit de l'architecture intégrée de traitement des demandes de IIS et ASP.NET. Lorsqu'un processus ouvrier d'un pool d'applications reçoit une demande, celle-ci passe par une liste d'événements ordonnés. demande, celle-ci passe par une liste ordonnée d'événements. Chaque événement appelle les modules natifs et gérés nécessaires au traitement de certaines parties de la demande et de générer la réponse.

L'exécution de pools d'applications en mode intégré présente plusieurs avantages. intégré. Tout d'abord, les modèles de traitement des demandes de IIS et ASP.NET sont intégrés dans un modèle de processus unifié. Ce modèle élimine les étapes qui étaient auparavant dupliquées dans IIS et ASP.NET, telles que l'authentification et le traitement des demandes. l'authentification. En outre, le mode intégré permet la disponibilité des fonctions gérées à tous les types de contenu.

Mode classique de pool d'applications

Lorsqu'un pool d'applications est en mode classique, IIS 7.0 traite les demandes comme dans le mode d'isolation du processus ouvrier de IIS 6.0. Les demandes ASP.NET passent d'abord passent d'abord par des étapes de traitement natif dans IIS et sont ensuite acheminées vers Aspnet_isapi.dll pour le traitement du code géré dans le pool d'applications géré. d'exécution géré. Enfin, la demande est réacheminée par IIS pour envoyer la réponse. réponse.

Cette séparation des modèles de traitement des demandes IIS et ASP.NET entraîne la duplication de certaines étapes de traitement, telles que les suivantes l'authentification et l'autorisation. De plus, les caractéristiques du code géré, comme l'authentification des formulaires, ne sont disponibles que pour les applications ASP.NET ou aux applications pour lesquelles vous avez script mappé toutes les demandes à traiter par astral. demandes pour qu'elles soient traitées par aspnet_isapi.dll.

Veillez à tester la compatibilité de vos applications existantes en mode intégré avant de procéder à la mise à niveau de votre environnement de production en mode II. mode intégré avant d'effectuer la mise à niveau d'un environnement de production vers IIS 7.0 et d'affecter des applications à des pools d'applications en mode intégré. Vous ne devez ajouter une application à un pool d'applications en mode classique que si l'application ne fonctionne pas en mode intégré. si l'application ne fonctionne pas en mode intégré. Par exemple votre application peut s'appuyer sur un jeton d'authentification transmis par IIS au runtime géré et, en raison de la nouvelle architecture de IIS 7.0, le processus interrompt votre application.

Tiré de : Quelle est la différence entre DefaultAppPool et Classic .NET AppPool dans IIS7 ?

Source originale : Introduction à l'architecture IIS

5voto

Mian Points 66

En mode classique, IIS travaille directement avec les extensions ISAPI et les filtres ISAPI. Il utilise deux pipe lines, une pour le code natif et l'autre pour le code géré. Vous pouvez simplement dire qu'en mode classique, IIS 7.x fonctionne exactement comme IIS 6 et que vous ne bénéficiez pas d'avantages supplémentaires grâce aux fonctionnalités de IIS 7.x.

En mode intégré, IIS et ASP.Net sont étroitement couplés, alors qu'ils ne dépendent que de deux DLL sur Asp.net comme dans le cas du mode classique.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X