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
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).
Dans le volet Connexions, développez le nom d'ordinateur, 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 .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.
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 Web 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 de sélection.
- 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 <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.
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.
"" . |
||||||||
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.
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()