Partager via


Ajout de pools d’applications <ajouter>

Vue d’ensemble

L’élément <add> de l’élément <applicationPools> contrôle les paramètres de configuration d’un pool d’applications IIS 7 et ultérieur. Vous créez un élément <add> dans le fichier ApplicationHost.config pour chaque pool d’applications que vous souhaitez exécuter sur votre serveur IIS.

L’élément <add> peut contenir des attributs et des éléments enfants qui configurent le mode de traitement du pipeline et la version du .NET Framework que les processus de travail du pool d’applications utilisent pour les requêtes entrantes. Cet élément contient également des éléments enfants qui configurent les paramètres d’identité, de performances et d’intégrité et de recyclage du pool d’applications.

Lorsque vous créez un pool d’applications sur IIS 7 et versions ultérieures, au minimum, vous devez affecter au pool d’applications un nom unique. Configurez toutes les autres propriétés si nécessaire pour les applications qui utilisent le pool d’applications.

Nouveautés d’IIS 7.5 et versions ultérieures

À compter d’IIS 7.5, vous pouvez configurer une application pour démarrer automatiquement à l’aide des attributs managedRuntimeLoader, CLRConfigFileet startMode de l’élément <add>. Ces attributs configurent, respectivement, le nom de la DLL managé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.

Une autre nouveauté dans IIS 7.5 et versions ultérieures est un nouveau type de 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 <add> n’a fait l’objet d’aucune modification dans IIS 10.0.
IIS 8.5 L’élément <add> n’a fait l’objet d’aucune modification dans IIS 8.5.
IIS 8.0 La valeur par défaut de l’attribut managedRuntimeVersion a été modifiée en "",et v4.0 a été ajoutée comme valeur pour managedRuntimeVersion.
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.
IIS 7.0 L’élément <add> de la collection <applicationPools> a été introduit dans IIS 7.0.
IIS 6.0 La collection <applicationPools> remplace les parties de la propriété de 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

  1. 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 Internet Information Services (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 Internet Information Services (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).
  2. Dans le volet Connexions, développez le nom d'ordinateur, puis cliquez sur Pools d'applications.

  3. Dans le volet Actions, cliquez sur Ajouter un pool d'applications....

  4. 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 .NET Framework :, sélectionnez la version .NET Framework utilisée par votre site ou votre application, dans la liste déroulante mode pipeline managé :, sélectionner Intégré ou Classique, puis cliquez sur OK.
    Screenshot of the Add Application Pool dialog box with fields for Name, dot NET Framework version and Managed pipeline mode.

Comment configurer le pool d’applications pour un site ou une application existant

  1. Dans le volet Connexions, développez Sites, puis accédez au site Web ou à l’application que vous souhaitez ajouter au pool d’applications.
  2. Dans le volet Actions, cliquez sur Paramètres avancés....
  3. 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 de sélection.
    Screenshot that shows the Advanced Settings dialog box with Application Pool highlighted.
  4. 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.
    Screenshot of Select Application Pool dialog box showing Contoso selected from the application pool drop down box.

Configuration

L’élément <add> de la collection <applicationPools> est configurable au niveau du serveur dans le fichier ApplicationHost.config.

Attributs

Attribut Description
autoStart Attribut booléen facultatif.

Lorsque la valeur est true, indique au service de publication W3SVC (World Wide Web Publishing Service) que le pool d’applications doit être démarré automatiquement lors de sa création ou du démarrage IIS.

La valeur par défaut est true.
CLRConfigFile Valeur de chaîne facultative.

Spécifie le fichier de configuration .NET pour le pool d’applications.

Remarque : cet attribut a été ajouté dans IIS 7.5.

Il n'y a pas de valeur par défaut.
enable32BitAppOnWin64 Attribut booléen facultatif.

Lorsque la valeur est true, permet à une application 32 bits de s’exécuter sur un ordinateur qui exécute une version 64 bits de Windows.

La valeur par défaut est false.
enableConfigurationOverride Attribut booléen facultatif.

Lorsque la valeur est true, indique que les paramètres délégués dans les fichiers Web.config sont traités pour les applications au sein de ce pool d’applications. Lorsque la valeur est false, tous les paramètres des fichiers Web.config sont ignorés pour ce pool d’applications.

La valeur par défaut est true.
managedPipelineMode Attribut d’énumération facultatif.

Spécifie le mode de traitement des demandes utilisé pour traiter les demandes de contenu managé.

L’attribut managedPipelineMode peut être l’une des valeurs possibles suivantes.
Valeur Description
Classic Spécifie que le pool d’applications utilise des pipelines IIS et ASP.NET de traitement des demandes distincts, qui fonctionnent avec des applications ASP.NET 1.1 et ASP.NET 2.0 ou version ultérieure qui ne fonctionnent pas en mode intégré.

La valeur numérique est 1.
Integrated Spécifie que le pool d’applications utilise le pipeline de traitement des demandes intégré IIS et ASP.NET, qui fonctionne uniquement avec ASP.NET applications 2.0 ou ultérieures.

La valeur numérique est 0.
Par défaut, il s’agit de Integrated.
managedRuntimeLoader Attribut de chaîne facultatif.

Spécifie le chargeur managé à utiliser pour le préchargement du pool d’applications.

Remarque : cet attribut a été ajouté dans IIS 7.5.

La valeur par défaut est webengine4.dll.
managedRuntimeVersion Attribut de chaîne facultatif.

Spécifie la version CLR à utiliser par le pool d’applications.

L’attribut managedRuntimeVersion peut être l’une des valeurs possibles suivantes.
Valeur Description
v1.1 Spécifie que le pool d’applications utilise la version CLR 1.1.
v2.0 Spécifie que le pool d’applications utilise la version CLR 2.0, qui peut être .NET Framework version 2.0, 3.0 ou 3.5.
v4.0 Spécifie que le pool d’applications utilise la version CLR 4.0, qui peut être .NET Framework version 4.0 ou 4.5.
La valeur par défaut est "".
name Attribut de chaîne requis.

Spécifie un nom unique pour un pool d’applications sur le serveur.
passAnonymousToken Attribut booléen facultatif.

Si la valeur est true, le service d’activation des processus Windows (WAS) crée et transmet un jeton pour le compte d’utilisateur anonyme IUSR intégré au module d’authentification anonyme. Le module d’authentification anonyme utilise le jeton pour emprunter l’identité du compte intégré. Lorsque PassAnonymousToken a la valeur false, le jeton ne sera pas transmis.

Remarque : le compte d’utilisateur anonyme IUSR remplace le compte anonyme IIS_MachineName. Le compte IUSR peut être utilisé par IIS ou d’autres applications. Il n’a pas de privilèges qui lui sont attribués pendant l’installation.

La valeur par défaut est true.
queueLength Attribut uint facultatif.

Indique à HTTP.sys le nombre de demandes à mettre en file d’attente pour un pool d’applications avant de rejeter les futures requêtes. La valeur par défaut est 1000.

Quand la valeur de cette propriété est dépassée, IIS rejette les requêtes suivantes avec une erreur 503. Si le paramètre loadBalancerCapabilities a la valeur true, la connexion est fermée au lieu de rejeter les demandes avec une valeur 503. Pour plus d’informations sur loadBalancerCapabilities, consultez Paramètres d’échec d’un pool d’applications.
startMode Valeur d’énumération facultative.

Spécifie le type de démarrage du pool d’applications.

Remarque : cet attribut a été ajouté dans IIS 7.5.

L’attribut startMode peut être l’une des valeurs possibles suivantes.
Valeur Description
AlwaysRunning Spécifie que le service d’activation de processus Windows (WAS) démarre toujours le pool d’applications. Ce comportement permet à une application de charger l’environnement d’exploitation avant de traiter les requêtes HTTP, ce qui réduit le traitement de démarrage des requêtes HTTP initiales pour l’application.

La valeur numérique est 1.
OnDemand Spécifie que le service d’activation des processus Windows (WAS) démarre le pool d’applications lorsqu’une requête HTTP est effectuée pour une application hébergée dans le pool d’applications. Ce comportement ressemble au comportement WAS dans les versions précédentes d’IIS.

La valeur numérique est 0.
La valeur par défaut est OnDemand.

Éléments enfants

Élément Description
cpu Configure l'affinité et les actions du processeur.
environmentVariables Configure une collection de variables d’environnement à transmettre aux processus de travail.
failure Configure les actions à effectuer lorsqu’un pool d’applications échoue.
processModel Configure les attributs de gestion des processus pour un pool d’applications.
recycling Configure le recyclage du pool d’applications.

Exemple Configuration

L’exemple de configuration suivant utilise l’élément <add> de pool d’applications pour créer un pool d’applications nommé Contoso. L’élément <recycling> configure la journalisation des redémarrages du pool d’applications, l’élément <periodicRestart> configure lorsque le pool d’applications redémarre et l’élément <processModel> configure les attributs shutdownTimeLimit et startupTimeLimit pour arrêter et démarrer les processus de travail dans le pool d’applications pendant 30 secondes chacune. Si ces limites de temps sont dépassées, IIS met fin au processus de travail.

<add name="Contoso">
   <recycling logEventOnRecycle="Schedule">
      <periodicRestart>
         <schedule>
            <clear />
            <add value="03:00:00" />
         </schedule>
      </periodicRestart>
   </recycling>
   <processModel identityType="NetworkService" shutdownTimeLimit="00:00:30" startupTimeLimit="00:00:30" />
</add>

Exemple de code

Les exemples de code suivants ajoutent un pool d’applications nommé Contoso à votre serveur IIS 7 et ultérieur, puis définisse le pool d’applications sur le recyclage quotidien à 3 h du matin.

AppCmd.exe

appcmd.exe set config -section:system.applicationHost/applicationPools /+"[name='Contoso']" /commit:apphost

appcmd.exe set config -section:system.applicationHost/applicationPools /+"[name='Contoso'].recycling.periodicRestart.schedule.[value='03:00:00']" /commit:apphost

Vous pouvez également utiliser la syntaxe suivante :

appcmd.exe add apppool /name:"Contoso"

appcmd.exe set config -section:system.applicationHost/applicationPools /+"[name='Contoso'].recycling.periodicRestart.schedule.[value='03:00:00']" /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 dans la section d’emplacement 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";
         ConfigurationElement recyclingElement = addElement.GetChildElement("recycling");
         ConfigurationElement periodicRestartElement = recyclingElement.GetChildElement("periodicRestart");
         ConfigurationElementCollection scheduleCollection = periodicRestartElement.GetCollection("schedule");
         ConfigurationElement addElement1 = scheduleCollection.CreateElement("add");
         addElement1["value"] = TimeSpan.Parse("03:00:00");
         scheduleCollection.Add(addElement1);
         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"
      Dim recyclingElement As ConfigurationElement = addElement.GetChildElement("recycling")
      Dim periodicRestartElement As ConfigurationElement = recyclingElement.GetChildElement("periodicRestart")
      Dim scheduleCollection As ConfigurationElementCollection = periodicRestartElement.GetCollection("schedule")
      Dim addElement1 As ConfigurationElement = scheduleCollection.CreateElement("add")
      addElement1("value") = TimeSpan.Parse("03:00:00")
      scheduleCollection.Add(addElement1)
      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";
var recyclingElement = addElement.ChildElements.Item("recycling");
var periodicRestartElement = recyclingElement.ChildElements.Item("periodicRestart");
var scheduleCollection = periodicRestartElement.ChildElements.Item("schedule").Collection;
var addElement1 = scheduleCollection.CreateNewElement("add");
addElement1.Properties.Item("value").Value = "03:00:00";
scheduleCollection.AddElement(addElement1);
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"
Set recyclingElement = addElement.ChildElements.Item("recycling")
Set periodicRestartElement = recyclingElement.ChildElements.Item("periodicRestart")
Set scheduleCollection = periodicRestartElement.ChildElements.Item("schedule").Collection
Set addElement1 = scheduleCollection.CreateNewElement("add")
addElement1.Properties.Item("value").Value = "03:00:00"
scheduleCollection.AddElement(addElement1)
applicationPoolsCollection.AddElement(addElement)

adminManager.CommitChanges()