Élément <applicationPool> (paramètres web)

Spécifie les paramètres de configuration utilisés par ASP.NET pour gérer le comportement à l’échelle du processus quand une application ASP.NET s’exécute en mode intégré sur IIS 7.0 ou une version ultérieure.

Important

Cet élément et la fonctionnalité qu’il prend en charge fonctionnent uniquement si votre application ASP.NET est hébergée sur IIS 7.0 ou versions ultérieures.

<configuration>
  <system.web>
    <applicationPool>

Syntaxe

<applicationPool
    maxConcurrentRequestsPerCPU="5000"
    maxConcurrentThreadsPerCPU="0"
    requestQueueLimit="5000" />  

Attributs et éléments

Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.

Attributs

Attribut Description
maxConcurrentRequestsPerCPU Spécifie le nombre de demandes simultanées qu’autorise ASP.NET par processeur.
maxConcurrentThreadsPerCPU Spécifie le nombre de threads simultanés qui peuvent s’exécuter pour un même pool d’applications pour chaque processeur. Cela permet de contrôler la concurrence ASP.NET d’une autre façon, car vous pouvez limiter le nombre de threads managés pouvant être utilisés par processeur pour traiter les demandes. Par défaut, ce paramètre a la valeur 0, ce qui signifie que ASP.NET ne limite pas le nombre de threads pouvant être créés par processeur, même si le pool de threads CLR limite aussi le nombre de threads pouvant être créés.
requestQueueLimit Spécifie le nombre maximal de demandes pouvant être mises en file d’attente pour ASP.NET dans un même processus. Quand plusieurs applications ASP.NET s’exécutent dans un même pool d’applications, l’ensemble cumulé des demandes dirigées vers une application du pool d’applications est soumis à ce paramètre.

Éléments enfants

Aucune.

Éléments parents

Élément Description
<system.web> Contient des informations sur la façon dont ASP.NET interagit avec une application hôte.

Notes

Quand vous exécutez IIS 7.0 ou une version ultérieure en mode intégré, cette combinaison d’éléments vous permet de configurer la façon dont ASP.NET gère les threads et met les demandes en file d’attente quand l’application est hébergée dans un pool d’applications IIS. Si vous exécutez IIS 6 ou IIS 7.0 en mode classique ou en mode ISAPI, ces paramètres sont ignorés.

Les paramètres applicationPool s’appliquent à tous les pools d’applications qui s’exécutent sur une version particulière de .NET Framework. Les paramètres sont contenus dans un fichier aspnet.config. Il existe une version de ce fichier pour les versions 2.0 et 4.0 de .NET Framework. (Les versions 3.0 et 3.5 de .NET Framework partagent le fichier aspnet.config avec la version 2.0.)

Important

Si vous exécutez IIS 7.0 sur Windows 7, vous pouvez configurer un fichier aspnet.config distinct pour chaque pool d’applications. Cela vous permet d’adapter le niveau de performance des threads pour chaque pool d’applications.

Pour le paramètre maxConcurrentRequestsPerCPU, la valeur par défaut de « 5 000 » dans .NET Framework 4 désactive effectivement la limitation des demandes qui est contrôlée par ASP.NET, sauf si vous avez réellement 5 000 demandes ou plus par processeur. La valeur par défaut est plutôt tributaire du pool de threads CLR pour gérer automatiquement la concurrence par processeur. Les applications qui font largement appel au traitement de demandes asynchrones, ou dont les demandes durables sont bloquées en nombre au niveau des E/S réseau, tireront avantage de la limite par défaut supérieure de .NET Framework 4. En définissant maxConcurrentRequestsPerCPU sur zéro, vous désactivez l’utilisation de threads managés pour le traitement des demandes ASP.NET. Quand une application s’exécute dans un pool d’applications IIS, les demandes restent sur le thread d’E/S IIS. De ce fait, la concurrence est limitée par les paramètres de thread IIS.

Le paramètre requestQueueLimit fonctionne de la même façon que l’attribut requestQueueLimit de l’élément processModel, qui est défini dans les fichiers Web.config des applications ASP.NET. Cependant, le paramètre requestQueueLimit d’un fichier aspnet.config remplace le paramètre requestQueueLimit d’un fichier Web.config. En d’autres termes, si les deux attributs sont définis (ce qui est le cas, par défaut), le paramètre requestQueueLimit du fichier aspnet.config est prioritaire.

Exemple

L’exemple suivant montre comment configurer le comportement à l’échelle du processus ASP.NET dans le fichier aspnet.config dans les circonstances suivantes :

  • L’application est hébergée dans un pool d’applications IIS 7.0.

  • IIS 7.0 s’exécute en mode intégré.

  • L’application utilise .NET Framework 3.5 SP1 ou une version ultérieure.

Les valeurs de l’exemple sont les valeurs par défaut.

<configuration>  
  <system.web>  
    <applicationPool
        maxConcurrentRequestsPerCPU="5000"  
        maxConcurrentThreadsPerCPU="0"
        requestQueueLimit="5000" />  
  </system.web>  
</configuration>  

Voir aussi