Pools d’applications <applicationPools>
Vue d’ensemble
L’élément <applicationPools>
contient des paramètres de configuration pour tous les pools d’applications s’exécutant sur votre serveur internet (IIS) 7 ou version ultérieure. Un pool d’applications définit un groupe d’un ou plusieurs processus de travail, configurés avec des paramètres courants qui traitent les requêtes vers une ou plusieurs applications affectées à ce pool d’applications. Étant donné que les pools d’applications permettent à un ensemble d’applications internet de partager un ou plusieurs processus de travail configurés de façon similaire, ils offrent un moyen pratique d’isoler un ensemble d’applications internet d’autres applications internet sur l’ordinateur serveur. Les limites de processus séparent chaque processus de travail ; par conséquent, les problèmes d’application dans un pool d’applications n’affectent pas les sites internet ou les applications d’autres pools d’applications. Les pools d’applications augmentent considérablement la fiabilité et la facilité de gestion de votre infrastructure internet.
Vous pouvez choisir d’utiliser le pool d’applications par défaut fourni par IIS lors de l’installation, ou vous pouvez créer votre propre pool d’applications. Vous pouvez exécuter autant de pools d’applications sur votre serveur IIS 7 et ultérieur que nécessaire, bien que cela puisse affecter les performances du serveur. Les pools d’applications peuvent contenir un ou plusieurs processus de travail. Chaque processus de travail représente le travail effectué pour un site, une application ou un service internet. Vous pouvez créer un jardin internet en permettant à plusieurs processus de travail de s’exécuter dans un pool d’applications unique.
Dans IIS 7 et versions ultérieures, chaque pool d’applications utilise l’un des deux modes d’intégration .NET pour exécuter des applications ASP.NET : Intégré ou Classique. Le mode d’intégration .NET défini pour le pool d’applications détermine comment IIS traite une requête entrante vers les sites, applications et services internet qui s’exécutent dans ce pool d’applications.
- Le mode intégré permet à IIS de traiter les requêtes dans le pool d’applications à l’aide du pipeline intégré IIS 7 et ultérieur. Cela permet aux modules ASP.NET de participer au traitement des requêtes IIS, quel que soit le type de ressource demandée. L’utilisation du mode intégré rend disponibles les fonctionnalités du pipeline de requête ASP.NET 2.0 à la disposition des requêtes de contenu statique, ainsi qu’à ASP, PHP et autres types de contenu. Par défaut, les pools d’applications IIS 7 et versions ultérieures s’exécutent en ce mode.
- Le mode Classique utilise le pipeline de traitement IIS 6.0 pour héberger des applications ASP.NET. Dans ce mode, les requêtes sont traitées initialement via IIS 7 et les modules ultérieurs, et les requêtes ASP.NET sont traitées par aspnet_isapi.dll. Le pipeline de traitement ASP.NET est distinct du pipeline de traitement IIS 7 et ultérieur, et les fonctionnalités de pipeline de traitement des requêtes ASP.NET ne sont pas disponibles pour d’autres types de ressources. Cela signifie également qu’une requête de ASP.NET doit passer par le biais de modules d’authentification et d’autorisation dans les deux modèles de processus. Bien que cela ne soit pas aussi efficace que le mode Intégré, cela vous permet d’exécuter des applications développées à l’aide de ASP.NET version 1.1 sur un serveur IIS 7 et ultérieur sans modifier l’application pour s’exécuter en mode intégré.
Nouveautés d’IIS 7.5 et versions ultérieures
À partir d’IIS 7.5, vous pouvez configurer une application pour démarrer automatiquement à l’aide des attributs managedRuntimeLoader, CLRConfigFile et startMode de l’élément <add>
. Ces attributs configurent, respectivement, le nom de la DLL gérée qui fournit le chargement du runtime pour votre application, le fichier de configuration common language runtime de l’application et le type de démarrage de l’application.
Nouveau dans IIS 7.5 et versions ultérieures est également un nouveau type ApplicationPoolIdentity
pour l’attribut identityType de l’élément <processModel>
. Ce nouveau type d’identité est désormais l’identité de processus par défaut pour les applications et permet de définir la sécurité de vos zones de contenu afin d’autoriser l’accès à un pool d’applications spécifique. Pour ce faire, vous devez définir votre sécurité à l’aide du nom d’un pool d’applications à l’aide de la syntaxe « IIS AppPool\DefaultAppPool ». Cette identité est créée dynamiquement, ce qui réduit considérablement la surface d’attaque de votre serveur.
Compatibilité
Version | Notes |
---|---|
IIS 10.0 | L’élément <applicationPools> n’a pas été modifié dans IIS 10.0. |
IIS 8.5 | L’élément <applicationPools> n’a pas été modifié dans IIS 8.5. |
IIS 8.0 | L’élément <applicationPools> n’a pas été modifié dans IIS 8.0. |
IIS 7.5 | L’élément <add> de l’élément <applicationPools> a été mis à jour dans IIS 7.5 pour inclure des attributs qui vous permettent de précharger des applications à l’aide des attributs managedRuntimeLoader, CLRConfigFile et startMode, et d’exécuter des applications à l’aide du nouveau ApplicationPoolIdentity. |
IIS 7.0 | L’élément <applicationPools> a été introduit dans IIS 7.0. |
IIS 6.0 | L’élément <applicationPools> remplace l’objet de la métabase IIS 6.0 IIsApplicationPools. |
Programme d’installation
La collection <applicationPools>
est incluse dans l’installation par défaut d’IIS 7 et versions ultérieures.
Procédure
Comment créer un nouveau pool d'applications
Ouvrez le Gestionnaire des services internet (IIS) :
Si vous utilisez Windows Server 2012 ou Windows Server 2012 R2 :
- Dans la barre des tâches, cliquez sur Gestionnaire de serveur, cliquez sur Outils, puis sur Gestionnaire des services internet (IIS).
Si vous utilisez Windows 8 ou Windows 8.1 :
- Maintenez la touche Windows enfoncée, appuyez sur la lettre X, puis cliquez sur Panneau de configuration.
- Cliquez sur Outils d'administration, puis double-cliquez sur Gestionnaire des services internet (IIS).
Si vous utilisez Windows Server 2008 ou Windows Server 2008 R2 :
- Cliquez sur Démarrer, placez le curseur sur Outils d'administration, puis cliquez sur Gestionnaire des services internet (IIS).
Si vous utilisez Windows Vista ou Windows 7 :
- Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
- Double-cliquez sur Outils d'administration, puis double-cliquez sur Gestionnaire des services internet (IIS).
Dans le volet Connexions, développez le nom du serveur, puis cliquez sur Pools d'applications.
Dans le volet Actions, cliquez sur Ajouter un pool d'applications....
Dans la boîte de dialogue Ajouter un pool d’applications, entrez le nom du pool d’applications dans la zone Nom : dans la liste déroulante version du framework .NET :, sélectionnez la version du framework .NET utilisée par votre site ou votre application, dans la liste déroulante Mode du pipeline géré :, sélectionnez Intégré ou Classique, puis cliquez sur OK.
Comment configurer le pool d’applications pour un site ou une application existant
- Dans le volet Connexions, développez Sites, puis accédez au site internet ou à l’application que vous souhaitez ajouter au pool d’applications.
- Dans le volet Actions, cliquez sur Paramètres avancés....
- Dans la section Général de la boîte de dialogue Paramètres avancés, cliquez sur l’entrée Pool d’applications, puis cliquez sur le bouton avec les points de suspension (...).
- Dans la boîte de dialogue Sélectionner un pool d'applications, sélectionnez le pool d'applications dans la liste déroulante Pool d'applications, cliquez sur OK, puis cliquez une nouvelle fois sur OK.
Configuration
L’élément <applicationPools>
contient une collection d’éléments <add>
. Chaque élément de la collection configure un pool d’applications s’exécutant sur IIS 7 et versions ultérieures. Au minimum, chaque élément <add>
contient un attribut nom qui identifie le pool d’applications au niveau des outils de gestion en interface graphique utilisateur et en ligne de commande. L’élément <add>
contient des éléments enfants qui configurent le modèle de processus, le processeur et les paramètres de recyclage pour le pool d’applications.
L’élément <applicationPools>
contient également l’élément <applicationPoolDefaults>
, qui définit les paramètres par défaut pour tous les pools d’applications sur le serveur IIS 7 et ultérieur. Pour modifier les paramètres de pool d’applications par défaut sur le serveur, vous pouvez modifier l’élément <applicationPoolDefaults>
. Lorsque vous créez un pool d’applications, les paramètres de configuration de ce pool d’applications remplacent les valeurs par défaut définies dans l’élément <applicationPoolDefaults>
.
Attributs
Aucune.
Éléments enfants
Élément | Description |
---|---|
add |
Ajoute un pool d’applications à la section applicationPools. |
applicationPoolDefaults |
Attribut de chaîne requis. Configure les paramètres par défaut pour tous les pools d’applications dans une section applicationPools. |
Exemple Configuration
L’exemple de configuration suivant utilise le pool d’applications <add>
et les éléments <applicationPools>
pour définir les pools d’applications standard et les valeurs par défaut pour IIS.
<applicationPools>
<add name="DefaultAppPool" />
<add name="Classic .NET AppPool" managedPipelineMode="Classic" />
<applicationPoolDefaults>
<processModel identityType="NetworkService" />
</applicationPoolDefaults>
</applicationPools>
Exemple de code
Les exemples suivants ajoutent un pool d’applications nommé Contoso et définissent le mode de pipeline géré sur Intégré.
AppCmd.exe
appcmd.exe set config -section:system.applicationHost/applicationPools /+"[name='Contoso',autoStart='True',managedPipelineMode='Integrated']" /commit:apphost
Remarque
Vous devez veiller à définir le paramètre commit sur apphost
quand vous utilisez AppCmd.exe pour configurer ces paramètres. Cela valide les paramètres de configuration à l’emplacement de la section appropriée dans le fichier ApplicationHost.config.
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample {
private static void Main() {
using(ServerManager serverManager = new ServerManager()) {
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection applicationPoolsSection = config.GetSection("system.applicationHost/applicationPools");
ConfigurationElementCollection applicationPoolsCollection = applicationPoolsSection.GetCollection();
ConfigurationElement addElement = applicationPoolsCollection.CreateElement("add");
addElement["name"] = @"Contoso";
addElement["autoStart"] = true;
addElement["managedPipelineMode"] = @"Integrated";
applicationPoolsCollection.Add(addElement);
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetApplicationHostConfiguration
Dim applicationPoolsSection As ConfigurationSection = config.GetSection("system.applicationHost/applicationPools")
Dim applicationPoolsCollection As ConfigurationElementCollection = applicationPoolsSection.GetCollection
Dim addElement As ConfigurationElement = applicationPoolsCollection.CreateElement("add")
addElement("name") = "Contoso"
addElement("autoStart") = True
addElement("managedPipelineMode") = "Integrated"
applicationPoolsCollection.Add(addElement)
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var applicationPoolsSection = adminManager.GetAdminSection("system.applicationHost/applicationPools",
"MACHINE/WEBROOT/APPHOST");
var applicationPoolsCollection = applicationPoolsSection.Collection;
var addElement = applicationPoolsCollection.CreateNewElement("add");
addElement.Properties.Item("name").Value = "Contoso";
addElement.Properties.Item("autoStart").Value = true;
addElement.Properties.Item("managedPipelineMode").Value = "Integrated";
applicationPoolsCollection.AddElement(addElement);
adminManager.CommitChanges();
VBScript
Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set applicationPoolsSection = adminManager.GetAdminSection("system.applicationHost/applicationPools","MACHINE/WEBROOT/APPHOST")
Set applicationPoolsCollection = applicationPoolsSection.Collection
Set addElement = applicationPoolsCollection.CreateNewElement("add")
addElement.Properties.Item("name").Value = "Contoso"
addElement.Properties.Item("autoStart").Value = True
addElement.Properties.Item("managedPipelineMode").Value = "Integrated"
applicationPoolsCollection.AddElement(addElement)
adminManager.CommitChanges()