Partager via


Vue d'ensemble de MWA et MWM pour IIS 7.0

Auteur :Janani Ravi

Abstract

L'extension de l'outil gestionnaire IIS pour gérer la configuration personnalisée (dans les fichiers de configuration distribués) sur le serveur IIS 7.0 et versions ultérieures implique l'utilisation d'API à partir de deux assemblys différents, de l'Microsoft.Web.Administration.dll et du Microsoft.Web.Management.dll. Ces API doivent être utilisées pour des actions très différentes et ont des objectifs fondamentalement différents. Le présent document fournit une vue d'ensemble rapide des fonctionnalités que ces API fournissent et la relation entre elles.

Introduction

Si vous envisagez d'ajouter une interface utilisateur au gestionnaire IIS (InetMgr) pour gérer les paramètres personnalisés sur les fichiers de configuration du serveur, vous utiliserez des API à partir de Microsoft.Web.Administration.dll et de Microsoft.Web.Management.dll. Les fonctionnalités fournies par les API de ces assemblys sont fondamentalement différentes et peuvent prêter à confusion pour un développeur qui l'utilise pour la première fois. Cet article fournit une brève vue d'ensemble des offres de chacun de ces assemblys.

Présentation de Microsoft.Web.Administration et Microsoft.Web.Management

Vous trouverez dans cette section une brève présentation de chacune de ces API.

Microsoft.Web.Administration

L'API Microsoft.Web.Administration (MWA) est générée en tant que wrapper de code managé sur l'API Application Host Administration (AHADMIN) qui est une bibliothèque d'interface de code natif. Elle fournit un moyen programmatique d'accéder à des informations de configuration et d'administration du serveur Web et de les mettre à jour.

Le fichier d'API Microsoft.Web.Administration.dll permet aux utilisateurs d'ajuster facilement les paramètres sur le serveur. Il ne prend pas en charge l'ajout d'une extensibilité ou d'une fonctionnalité d'interface utilisateur. En fait, plusieurs fonctions de l'interface utilisateur du gestionnaire IIS utilisent cette API pour gérer les paramètres de configuration en back-end.

L'API MWA est utilisée lorsqu'un développeur souhaite écrire un programme en code managé (C#, VB, etc.) pour configurer le serveur de manière particulière. Cette API est utilisée à partir d'applications console autonomes ou d'une fonctionnalité d'interface utilisateur dans le gestionnaire IIS.

Elle permet également d'accéder à la configuration au moment de l'exécution (par exemple, à partir d'un module managé dans le pipeline IIS).

Microsoft.Web.Management

Le fichier d'API Microsoft.Web.Management.dll est doté de l'infrastructure permettant d'ajouter de nouvelles fonctionnalités d'interface utilisateur à l'outil du Gestionnaire IIS. L'infrastructure dispose de l'extensibilité pour développer de nouvelles fonctionnalités et fournit les classes de base et d'autres fonctionnalités. Les extensions définies par l'utilisateur bénéficient ainsi d'un statut privilégié dans l'interface utilisateur et d'un aspect et d'une convivialité identiques à ceux des fonctionnalités intégrées d'IIS et d'ASP.Net.

Le Gestionnaire IIS dispose d'une infrastructure modulaire où chaque fonctionnalité d'interface utilisateur est sa propre entité et doit être inscrite individuellement auprès de l'outil. L'architecture du serveur client du gestionnaire IIS sépare la logique, qui manipule les paramètres du serveur à partir du code. Ces paramètres s'affichent de manière conviviale. Chaque fonctionnalité de l'outil suit ce paradigme client-serveur. Cette action s'effectue en fournissant des classes de base bien définies pour le code d'interface utilisateur côté serveur et client dans le gestionnaire IIS.

Cette API fournit également le mécanisme d'extensibilité pour développer des fonctionnalités d'interface utilisateur représentées entre autres sous forme de listes, de grilles de propriétés, de volets Actions personnalisés, d'Assistants modaux et de boîtes de dialogue.

La plupart des fonctionnalités d'interface utilisateur existantes fournies avec l'outil utilisent les API MWA (dans le code côté serveur) pour accéder à la configuration.

Microsoft.Web.Administration

Comme mentionné précédemment, les API MWA peuvent être utilisées pour manipuler les paramètres sur le serveur. Elles fournissent un accès fortement typé intégré aux sites, aux applications et aux répertoires virtuels configurés pour IIS. Ces API permettent également aux utilisateurs de générer leurs propres classes fortement typées représentant des sections de configuration spécifiques et de créer ainsi un moyen simple d'accéder aux propriétés et à d'autres informations stockées dans ces sections.

Il ne s'agit pas d'une liste complète et cet assembly offre beaucoup plus que ce qui est décrit ici.

ServerManager et sites, applications et répertoires virtuels

Le point d'entrée pour administrer les propriétés du serveur est la classe ServerManager. ServerManager a une référence à la liste de tous les sites sur ce serveur IIS et les sites individuels sont accessibles en indexant dans la collection de sites.

Les applications et les répertoires virtuels sont accessibles de manière similaire. Ces entités fournissent également des informations d'état d'exécution (par exemple, si un site est démarré/arrêté). Les mises à jour sont apportées aux paramètres par défaut pour l'ensemble du serveur ou aux propriétés qui appartiennent à une entité individuelle (par exemple, les mises à jour d'un site particulier).

Les paramètres du serveur sont mis à jour lorsque CommitChanges est appelé sur ServerManager.

Vous trouverez ici une vue d'ensemble de certaines des classes fortement typées offertes par cet assembly :

Diagram showing connections between the ServerManager class and other classes.

Accès à des fichiers de configuration individuels

Le modèle de fichier de configuration distribué utilisé par IIS permet à un site, une application, un répertoire virtuel ou même un dossier d'avoir sa configuration dans un fichier Web.config.

Il est possible d'accéder aux fichiers de configuration individuels afin d'ajuster les paramètres d'une entité particulière. La méthode ServerManager GetApplicationHostConfiguration est utilisée pour accéder à applicationHost.config, tandis que la méthode GetWebConfiguration accepte les paramètres pour obtenir des fichiers de configuration spécifiques.

Classes de base génériques pour l'extensibilité

Le système de configuration IIS vous permet de créer une section dans laquelle vous spécifiez des propriétés pertinentes pour votre application. À l'aide des API MWA, créez des classes fortement typées dans du code managé afin de manipuler ces paramètres. Entre autres classes de base utiles, figurent les suivantes :

  • Configuration : représente un fichier de configuration unique (applicationHost.config ou les fichiers Web.config pour les sites et les applications)
  • ConfigurationElement : entité générique utilisée pour représenter un élément dans un fichier de configuration. Il s'agit de la classe de base pour les sections de configuration, les entrées de collection, les éléments imbriqués dans une section, etc.
  • ConfigurationAttribute : représente une propriété au sein d'un ConfigurationElement
  • ConfigurationSection : dérive de ConfigurationElement et représente une section définie dans les fichiers de schéma IIS. Permet d'accéder aux différentes propriétés d'une section.
  • ConfigurationElementCollection : classe de collection composée de ConfigurationElements. Dérive également de ConfigurationElement.

Une vue d'ensemble simple de l'extensibilité de la configuration générique est illustrée ci-dessous :

Diagram showing connections in a generic configuration.

Accès du runtime à la configuration

WebConfigurationManager est utilisé pour l'accès du runtime aux paramètres de configuration du serveur. Un module managé chargé dans le pipeline IIS accède aux paramètres de configuration dans son contexte particulier (par exemple, une requête sur un site particulier) en référençant cette classe.

Microsoft.Web.Management

Les API Microsoft.Web.Management (MWM) sont les blocs de construction du développement de code côté serveur pour manipuler les paramètres d'administration et les fonctionnalités d'interface utilisateur côté client (qui permettent aux utilisateurs d'afficher et de manipuler ces paramètres de manière conviviale).

Vous trouverez ci-dessous une brève description de certaines des classes importantes dans chaque espace de noms. Là encore, il ne s'agit pas d'une liste complète. En outre, cet assembly offre beaucoup plus que ce qui est abordé ici.

Vue d'ensemble des avantages de cet assembly :

Screenshot showing lists of classes in namespaces.

Microsoft.Web.Management.Server

Les classes dérivant de la classe de base ModuleProvider forment le point d'entrée du Gestionnaire IIS pour identifier un module d'interface utilisateur. Il s'agit de la classe qui doit être inscrite dans le fichier administration.config pour que le Gestionnaire d'IIS l'affiche dans le cadre de son jeu de fonctionnalités.

Les classes dérivées de la classe de base ModuleService constituent le cœur de l'administration côté serveur. Ces classes effectuent la manipulation réelle des paramètres du serveur. Les méthodes de la classe qui doivent être visibles par le client d'interface utilisateur sont marquées avec l'attribut ModuleServiceMethod.

ManagementUnit donne au développeur le contexte dans lequel le serveur est administré. Par exemple, SiteManagementUnit et ApplicationManagementUnit correspondent aux connexions de site et aux connexions d'application dans l'outil gestionnaire IIS. La classe de base ModuleService expose l'unité de gestion actuelle qui peut être utilisée pour accéder aux informations sur le contexte actuel.

ManagementConfigurationPath est une classe qui représente un chemin d'accès (vers le serveur actuel, le site, l'application ou le dossier). Si vous administrez un site, ce chemin d'accès contient le nom du site et d'autres informations pertinentes sur le site. ManagementUnit expose le ManagementConfigurationPath actuel.

ManagementConfiguration est une classe d'application auxiliaire permettant d'accéder aux paramètres de configuration et de les manipuler sur le serveur. Il s'agit d'une abstraction très puissante pour la classe Configuration de l'API MWA définie précédemment et vous permet d'interroger des sections sans vous soucier si ces sections sont définies dans applicationHost.config ou dans le site Web.config racine.

PropertyBag est un type de conteneur utilisé pour contenir des informations transférées entre le client et le serveur. Il est implémenté en tant que dictionnaire générique. Le dictionnaire est sérialisé dans une chaîne lors du transfert de données dans les scénarios dans lesquels le serveur est administré à distance.

Microsoft.Web.Management.Client

Les classes dérivées de la classe de base Module forment le point d'entrée d'une fonctionnalité pour inscrire ses composants d'interface utilisateur. Ainsi, il est possible de déterminer si l'interface utilisateur de ce module est une page (affichée dans le volet central du Gestionnaire IIS), un nœud dans l'arborescence ou simplement une tâche dans le volet Actions, entre autres.

ModuleServiceProxy est la classe de base pour les stubs de méthode utilisés pour accéder aux méthodes de service réelles spécifiées dans moduleService sur le serveur.

HierarchyInfo représente un nœud dans l'arborescence et prend en charge plusieurs actions sur le nœud.

La classe Connexion contient toutes les informations de contexte pour la session de gestion actuelle (session de gestion définissant une connexion à un serveur, un site ou une application). Elle fournit des assistances pour accéder aux services, créer des proxys, etc.

TaskItem est la classe de base pour les tâches ajoutées au volet Actions dans le gestionnaire IIS. Les classes telles que MethodTaskItem, TextTaskItem dérivent de cette classe de base et affichent des liens, des étiquettes, des alertes et d'autres informations dans le volet Actions. Le développeur n'a pas besoin d'écrire de code d'interface utilisateur supplémentaire pour afficher ces actions.

Microsoft.Web.Management.Client.Win32

ModulePage est la classe de base pour toutes les fonctionnalités qui affichent une « page » dans le volet central de l'outil Gestionnaire d'IIS. Les classes telles que ModuleListPage, ModuleDialogPage et ModulePropertiesPage dérivent toutes de ModulePage. Il s'agit de classes de base qui offrent un moyen simple de développer des pages qui affichent des listes, des dialogues et des grilles de propriétés.

La classe de base TaskForm permet aux développeurs de créer des formulaires qui sont affichés sous la forme d'une boîte de dialogue modale.

WizardForm forme les classes de base de tous les dialogues. Les développeurs peuvent spécifier plusieurs classes dérivées WizardPage pour se connecter à l'Assistant.

Microsoft.Web.Management.Client.Extensions

Les classes de cet espace de noms fournissent une extensibilité côté client à l'aide de IExtensibilityManager. Par exemple, AuthenticationFeature a les tâches de chaque entrée dans la fonctionnalité d'authentification dans l'outil InetMgr.

Il s'agit d'une brève vue d'ensemble des fonctionnalités que Microsoft.Web.Administration et les API Microsoft.Web.Management offrent à un développeur qui souhaite étendre la configuration et l'interface utilisateur pour ajouter ses propres fonctionnalités. Pour obtenir des descriptions plus détaillées de l'extensibilité de la configuration et de l'extensibilité de l'interface utilisateur, consultez les articles individuels qui couvrent ces rubriques.