Limites ASP <limites>

Vue d’ensemble

L’élément <limits> de l’élément <asp> spécifie les limites de connexion et de file d’attente des pages ASP (Active Server Pages) suivantes pour Internet Information Services (IIS) 7 :

  • L’attribut bufferingLimit définit la taille maximale de la mémoire tampon ASP. Si la mise en mémoire tampon de réponse est activée, cet attribut contrôle le nombre maximal d’octets qu’une page ASP peut écrire dans la mémoire tampon de réponse avant qu’un vidage ne se produise.

  • L’attribut maxRequestEntityAllowed spécifie le nombre maximal d’octets autorisés dans le corps de l’entité d’une requête ASP. Si un en-tête Content-Length est présent et spécifie une quantité de données supérieure à la valeur de maxRequestEntityAllowed, IIS retourne une réponse d’erreur HTTP 403.

  • L’attribut processorThreadMax spécifie le nombre maximal de threads de travail par processeur que IIS peut créer.

    Remarque

    Ce paramètre peut considérablement influencer la scalabilité de vos applications web et les performances de votre serveur en général. Étant donné que cet attribut définit le nombre maximal de requêtes ASP pouvant s’exécuter simultanément, ce paramètre doit rester à la valeur par défaut, sauf si vos applications ASP effectuent des appels étendus aux composants externes.

  • L’attribut queueConnectionTestTime spécifie le nombre de secondes pendant lesquelles une requête peut être mise en file d’attente avant qu’ASP détermine si le client est toujours connecté. Si la requête est mise en file d’attente plus longtemps que le nombre de secondes spécifié par l’attribut queueConnectionTestTime, ASP vérifie si le client est toujours connecté avant d’exécuter la requête. Si le client n’est plus connecté, la requête n’est pas traitée et est supprimée de la file d’attente.

    Remarque

    Le plus souvent, les utilisateurs n’attendent pas plus de quelques secondes pour que les pages ASP soient traitées. Bien que le temps d’attente maximal varie d’un utilisateur à l’autre, le maximum généralement accepté est d’environ 10 secondes. Vous pouvez utiliser l’attribut queueConnectionTestTime pour vous assurer que IIS ne perd pas de temps à traiter une demande abandonnée par l’utilisateur. Cet attribut est utile pour rendre le traitement ASP efficace uniquement jusqu’au point auquel ASP commence à traiter le script. Une fois le script en cours d’exécution, toutefois, votre application doit continuer à rechercher la connexion du client à des moments appropriés à l’aide de la méthode IsClientConnected de l’objet Response ASP intégré.

  • L’attribut queueTimeout spécifie la durée (en secondes) pendant laquelle une demande de script ASP est autorisée à attendre dans la file d’attente. Lorsque les demandes sont extraites de la file d’attente, elles sont vérifiées pour voir si elles ont expiré (ont attendu plus longtemps que la valeur de ce paramètre). Les demandes expirées sont rejetées avec un message indiquant que le serveur est encombré.

  • L’attribut requestQueueMax spécifie le nombre maximal de requêtes ASP simultanées autorisées dans la file d’attente. Tout navigateur client qui tente de demander des fichiers ASP lorsque la file d’attente est complète reçoit une erreur HTTP 500 Server Too Busy.

  • L’attribut scriptTimeout spécifie (en secondes) la durée par défaut pendant laquelle les pages ASP autorisent l’exécution d’un script avant de terminer le script et d’écrire un événement dans le journal des événements Windows. Les scripts ASP peuvent remplacer cette valeur à l’aide de la propriété ScriptTimeout de l’objet Session ASP intégré. La propriété ScriptTimeout permet à vos applications ASP de définir une valeur de délai d’attente de script plus élevée. Par exemple, vous pouvez utiliser ce paramètre pour ajuster le délai d’attente une fois qu’un utilisateur particulier établit une session valide en se connectant ou en commandant un produit.

Compatibilité

Version Notes
IIS 10.0 L’élément <limits> n’a pas été modifié dans IIS 10.0.
IIS 8.5 L’élément <limits> n’a pas été modifié dans IIS 8.5.
IIS 8.0 L’élément <limits> n’a fait l’objet d’aucune modification dans IIS 8.0.
IIS 7.5 L’élément <limits> n’a fait l’objet d’aucune modification dans IIS 7.5.
IIS 7.0 L’élément <limits> de l’élément <asp> a été introduit dans IIS 7.0.
IIS 6.0 L’élément <limits> remplace les propriétés de métabase IIS 6.0 suivantes :
  • AspBufferingLimit
  • AspMaxRequestEntityAllowed
  • AspProcessorThreadMax
  • AspQueueConnectionTestTime
  • AspQueueTimeout
  • AspRequestQueueMax
  • AspScriptTimeout

Programme d’installation

Pour prendre en charge et configurer des applications ASP sur votre serveur web, vous devez installer le module ASP. Pour installer le module ASP, observez les étapes suivantes.

Windows Server 2012 ou Windows Server 2012 R2

  1. Dans la barre des tâches, cliquez sur Gestionnaire de serveur.
  2. Dans Gestionnaire de serveur, cliquez sur le menu Gérer, puis sur Ajouter des rôles et des fonctionnalités. Dans l’Assistant Ajout de rôles et de fonctionnalités, cliquez sur Suivant. Sélectionnez le type d’installation, puis cliquez sur Suivant. Sélectionnez le serveur de destination, puis cliquez sur Suivant.
  3. Dans la page Rôles de serveur, développez Serveur web (IIS), Serveur web, Développement d’applications, puis sélectionnez ASP.
    Screenshot of A S P selected under Application development in an expanded Web Server (I I S) list.
  4. Si la boîte de dialogue Ajouter des fonctionnalités requises par ASP ? s’affiche, cliquez sur Ajouter des fonctionnalités. (Cette page s’affiche uniquement si vous n’avez pas déjà installé le service de rôle Extensions ISAPI sur votre serveur.)
  5. Sur la page Rôles de serveurs, cliquez sur Suivant.
  6. Dans la page Sélectionner les composants, cliquez sur Suivant.
  7. Dans la page Confirmer les sélections d’installation, cliquez sur Installer.
  8. Dans la page Résultats , cliquez sur Fermer.

Windows 8 ou Windows 8.1

  1. Dans l’écran d’accueil, déplacez le pointeur jusqu’au coin inférieur gauche, cliquez avec le bouton droit sur le bouton Démarrer, puis cliquez sur Panneau de configuration.

  2. Dans le Panneau de configuration, cliquez sur Programmes et fonctionnalités, puis sur Activer ou désactiver des fonctionnalités Windows.

  3. Développez Internet Information Services, Services World Wide Web, Fonctionnalités de développement d’applications, puis sélectionnez ASP.
    Screenshot of A S P selected in a Windows 8 interface.

    Remarque

    Le rôle Extensions ISAPI est sélectionnée si elle n’a pas déjà été installée.

  4. Cliquez sur OK.

  5. Cliquez sur Fermer.

Windows Server 2008 ou Windows Server 2008 R2

  1. Dans la barre des tâches, cliquez sur Démarrer, pointez sur Outils d’administration, puis cliquez sur Gestionnaire de serveur.
  2. Dans le volet hiérarchie du Gestionnaire de serveur, développez Rôles, puis cliquez sur Serveur web (IIS).
  3. Dans le volet Serveur web (IIS), faites défiler jusqu’à la section Services de rôle, puis cliquez sur Ajouter des services de rôle.
  4. Dans la page Sélectionner des services de rôle de l’Assistant Ajout de services de rôle, sélectionnez ASP.
    Screenshot of A S P selected under Application development in the Add Role Services Wizard.
  5. Si la boîte de dialogue Ajouter des services de rôle requis par ASP s’affiche, cliquez sur Ajouter les services de rôle requis. (Cette page s’affiche uniquement si vous n’avez pas déjà installé le service de rôle Extensions ISAPI sur votre serveur.)
    Screenshot of the Add Role Services dialog with the Add Required Role Services button emphasized.
  6. Dans la page Sélectionner les services de rôle, cliquez sur Suivant.
  7. Dans la page Confirmer les sélections pour l'installation, cliquez sur Installer.
  8. Dans la page Résultats , cliquez sur Fermer.

Windows Vista ou Windows 7

  1. Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
  2. Dans le Panneau de configuration, cliquez sur Programmes et fonctionnalités, puis sur Activer ou désactiver des fonctionnalités Windows.
  3. Développez Internet Information Services, Services World Wide Web, puis Fonctionnalités de développement d’applications.
  4. Sélectionnez ASP, puis cliquez sur OK.
    Screenshot of A S P selected in a Windows Vista or Windows 7 interface.

Procédure

Comment configurer les paramètres de cache ASP pour un serveur

  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, mettez en surbrillance le nom de votre serveur.

  3. Dans le volet Accueil du serveur, double-cliquez sur ASP.
    Screenshot of the SERVER Home pane with A S P selected.

  4. Dans le volet ASP, développez la section Propriétés des limites, configurez les paramètres souhaités, puis cliquez sur Appliquer dans le volet Actions.
    Screenshot of the A S P pane with the Limits Properties section expanded.

Configuration

Attributs

Attribut Description
bufferingLimit Attribut uint facultatif.

Spécifie la taille maximale, en octets, de la mémoire tampon ASP. Si la mise en mémoire tampon de réponse est activée, cet attribut contrôle le nombre maximal d’octets qu’une page ASP peut écrire dans la mémoire tampon de réponse avant qu’un vidage ne se produise. Cette valeur est un entier compris entre 0 et 2147483647.

La valeur par défaut est 4194304.
maxRequestEntityAllowed Attribut uint facultatif.

Spécifie le nombre maximal d’octets autorisés dans tout le corps d’une requête ASP. Cette valeur est un entier compris entre 0 et 2147483647.

La valeur par défaut est 200000.
processorThreadMax Attribut uint facultatif.

Spécifie le nombre maximal de threads de travail par processeur que peut créer ASP.

La valeur par défaut est 25.
queueConnectionTestTime Attribut timeSpan facultatif.

Spécifie l’intervalle (hh:mm:ss) au terme duquel ASP vérifie si le client est toujours connecté avant d’exécuter une requête. Si le client n’est plus connecté, la requête n’est pas traitée et est supprimée de la file d’attente.

La valeur par défaut est 00:00:03.
queueTimeout Attribut timeSpan facultatif.

Spécifie la période maximale (hh:mm:ss) pendant laquelle une requête ASP peut attendre dans la file d’attente de la requête.

La valeur par défaut est 00:00:00.
requestQueueMax Attribut uint facultatif.

Spécifie le nombre maximal de requêtes ASP simultanées autorisées dans la file d’attente de requêtes.

La valeur par défaut est 3000.
scriptTimeout Attribut timeSpan facultatif.

Spécifie la durée maximale (hh:mm:ss) pendant laquelle les pages ASP autorisent l’exécution d’un script avant de le terminer et d’écrire un événement dans le journal des événements Windows.

La valeur par défaut est 00:01:30.

Éléments enfants

Aucune.

Exemple Configuration

L’exemple de configuration suivant fixe à 2 minutes le délai d’attente du script ASP, à 5 secondes le délai au bout duquel ASP vérifie si le client est toujours connecté avant d’exécuter une requête, et à 1 000 le nombre maximum de requêtes ASP simultanées dans la file d’attente des requêtes.

<configuration>
   <system.webServer>
      <asp>
         <cache diskTemplateCacheDirectory="%SystemDrive%\inetpub\temp\ASP Compiled Templates" />
         <limits scriptTimeout="00:02:00"
            queueConnectionTestTime="00:00:05"
            requestQueueMax="1000" />
      </asp>
   <system.webServer>
<configuration>

Exemple de code

Les exemples de code suivants fixent à 2 minutes le délai d’attente du script ASP, à 5 secondes le délai au bout duquel ASP vérifie si le client est toujours connecté avant d’exécuter une requête, et à 1 000 le nombre maximum de requêtes ASP simultanées dans la file d’attente des requêtes.

AppCmd.exe

appcmd.exe set config -section:system.webServer/asp /limits.scriptTimeout:"00:02:00" /commit:apphost
appcmd.exe set config -section:system.webServer/asp /limits.queueConnectionTestTime:"00:00:05" /commit:apphost
appcmd.exe set config -section:system.webServer/asp /limits.requestQueueMax:"1000" /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 aspSection = config.GetSection("system.webServer/asp");

         ConfigurationElement limitsElement = aspSection.GetChildElement("limits");
         limitsElement["scriptTimeout"] = TimeSpan.Parse("00:02:00");
         limitsElement["queueConnectionTestTime"] = TimeSpan.Parse("00:00:05");
         limitsElement["requestQueueMax"] = 1000;

         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 aspSection As ConfigurationSection = config.GetSection("system.webServer/asp")

      Dim limitsElement As ConfigurationElement = aspSection.GetChildElement("limits")
      limitsElement("scriptTimeout") = TimeSpan.Parse("00:02:00")
      limitsElement("queueConnectionTestTime") = TimeSpan.Parse("00:00:05")
      limitsElement("requestQueueMax") = 1000

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var aspSection = adminManager.GetAdminSection("system.webServer/asp", "MACHINE/WEBROOT/APPHOST");
var limitsElement = aspSection.ChildElements.Item("limits");
limitsElement.Properties.Item("scriptTimeout").Value = "00:02:00";
limitsElement.Properties.Item("queueConnectionTestTime").Value = "00:00:05";
limitsElement.Properties.Item("requestQueueMax").Value = 1000;

adminManager.CommitChanges();

VBScript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set aspSection = adminManager.GetAdminSection("system.webServer/asp", "MACHINE/WEBROOT/APPHOST")
Set limitsElement = aspSection.ChildElements.Item("limits")
limitsElement.Properties.Item("scriptTimeout").Value = "00:02:00"
limitsElement.Properties.Item("queueConnectionTestTime").Value = "00:00:05"
limitsElement.Properties.Item("requestQueueMax").Value = 1000

adminManager.CommitChanges()