Hier soir, je déployais une application ASP.NET MVC et j'ai découvert qu'il fallait moins de travail pour déployer avec IIS7 réglé en mode intégré. Ma question est quelle est la différence? Et quelles sont les implications de l'utilisation de l'un ou de l'autre?
asp.net
asp.net-mvc
iis
iis-7
integrated-pipeline-mode
Jon Erickson
la source
la source
Réponses:
Le mode classique (le seul mode dans IIS6 et ci-dessous) est un mode où IIS ne fonctionne qu'avec les extensions ISAPI et les filtres ISAPI directement. En fait, dans ce mode, ASP.NET n'est qu'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 fonctionne avec lui comme une boîte noire (et uniquement lorsqu'il doit transmettre la demande à 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é, d'autre part, est un nouveau mode dans IIS7 où le pipeline IIS est étroitement intégré (c'est-à-dire tout à fait le même) que le pipeline de demande ASP.NET. ASP.NET peut voir chaque demande qu'il souhaite 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é dans IIS. Dans ce mode, les ASP.NET
HttpModule
ont pratiquement autant de puissance qu'un filtre ISAPI aurait eu et les ASP.NETHttpHandler
peuvent avoir des capacités presque équivalentes à celles d'une extension ISAPI. Dans ce mode, ASP.NET fait fondamentalement partie d'IIS.la source
HttpModules
méthodes / événements dansiis7
a-t-il plus de fonctionnalités que dansiis6
? Pourriez-vous préciser ceci ?Tiré de: Quelle est la différence entre DefaultAppPool et Classic .NET AppPool dans IIS7?
Source originale: Introduction à l'architecture IIS
la source
ASP.NET intégré à IIS via une extension ISAPI, une API C (API basée sur le langage de programmation C) et exposé son propre modèle de traitement des demandes et des applications.
Cela a effectivement exposé deux pipelines de serveurs distincts (demande / réponse), un pour les filtres natifs ISAPI et les composants d'extension, et un autre pour les composants des applications gérées. Les composants ASP.NET s'exécuteraient entièrement à l'intérieur de la bulle d'extension ISAPI ASP.NET ET UNIQUEMENT pour les demandes mappées sur ASP.NET dans la configuration de mappage de script IIS.
Demandes à des types de contenu non ASP.NET: - les images, les fichiers texte, les pages HTML et les pages ASP sans script ont été traités par IIS ou d'autres extensions ISAPI et n'étaient PAS visibles par ASP.NET.
La principale limitation de ce modèle était que les services fournis par les modules ASP.NET et le code d'application ASP.NET personnalisé n'étaient PAS disponibles pour les demandes non ASP.NET
Qu'est-ce qu'une carte SCRIPT?
Les mappages de script sont utilisés pour associer des extensions de fichier au gestionnaire ISAPI qui s'exécute lorsque ce type de fichier est demandé. La mappe de script possède également un paramètre facultatif qui vérifie que le fichier physique associé à la demande existe avant de permettre le traitement de la demande
Un bon exemple peut être
seen here
IIS 7.0 et versions ultérieures ont été entièrement repensées pour fournir une toute nouvelle ISAPI basée sur l'API C ++.
IIS 7.0 et versions ultérieures intègrent le runtime ASP.NET avec les fonctionnalités de base du serveur Web, fournissant un pipeline de traitement des demandes unifié (unique) qui est exposé aux composants natifs et gérés appelés modules (IHttpModules)
Cela signifie que IIS 7 traite les demandes qui arrivent pour tout type de contenu, avec les deux
NON ASP.NET Modules / native IIS modules
etASP.NET modules
fournissant le traitement des demandes à toutes les étapes.C'est la raison pour laquelle les types de contenu NON ASP.NET (.html, fichiers statiques) peuvent être traités par les modules .NET .IHttpModule
) pouvant s'exécuter pour tout le contenu de l'application et fournir un ensemble amélioré de services de traitement des demandes à votre application.IHttpHandler
)la source
En mode classique, IIS fonctionne directement avec les extensions ISAPI et les filtres ISAPI. Et utilise deux pipelines, l'un pour le code natif et l'autre pour le code managé. Vous pouvez simplement dire qu'en mode classique, IIS 7.x fonctionne exactement comme IIS 6 et vous ne bénéficiez pas d'avantages supplémentaires grâce aux fonctionnalités IIS 7.x.
En mode intégré, IIS et ASP.Net sont étroitement couplés plutôt qu'en fonction de seulement deux DLL sur Asp.net comme dans le cas du mode classique.
la source