processModel, élément (Schéma des paramètres ASP.NET)
Mise à jour : novembre 2007
Configure les paramètres du modèle de processus ASP.NET sur un serveur Web de services IIS (Internet Information Services). La section processModel peut être définie uniquement dans le fichier Machine.config et affecte toutes les applications ASP.NET qui s'exécutent sur le serveur.
Attention : |
---|
Les modifications apportées à l'élément processModel entrent uniquement en vigueur lors du redémarrage du processus de travail mais pas immédiatement après la modification du paramètre, comme c'est le cas pour d'autres éléments de configuration. Pour plus d'informations, consultez la section « Remarques », plus loin dans cette rubrique. |
configuration, élément (Schéma des paramètres généraux)
system.web, élément (Schéma des paramètres ASP.NET)
processModel, élément (Schéma des paramètres ASP.NET)
<processModel
enable="true|false"
timeout="hrs:mins:secs|Infinite"
idleTimeout="hrs:mins:secs|Infinite"
shutdownTimeout="hrs:mins:secs|Infinite"
requestLimit="num|Infinite"
requestQueueLimit="num|Infinite"
restartQueueLimit="num|Infinite"
memoryLimit="percent"
webGarden="true|false"
cpuMask="num"
userName="<username>"
password="<secure password>"
logLevel="All|None|Errors"
clientConnectedCheck="hrs:mins:secs|Infinite"
comAuthenticationLevel="Default|None|Connect|Call|
Pkt|PktIntegrity|PktPrivacy"
comImpersonationLevel="Default|Anonymous|Identify|
Impersonate|Delegate"
responseDeadlockInterval="hrs:mins:secs|Infinite"
responseRestartDeadlockInterval="hrs:mins:secs|Infinite"
autoConfig="true|false"
maxWorkerThreads="num"
maxIoThreads="num"
minWorkerThreads="num"
minIoThreads="num"
serverErrorMessageFile=""
pingFrequency="Infinite"
pingTimeout="Infinite"
maxAppDomains="2000"
/>
Attributs et éléments
Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.
Attributs
Attribut |
Description |
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
autoConfig |
Spécifie s'il faut configurer automatiquement les paramètres suivants pour obtenir des performances optimales en fonction de la configuration de l'ordinateur :
Les valeurs sont définies en fonction de l'article de la Base de connaissances situé à l'adresse https://support.microsoft.com/?id=821268. Cet attribut n'affecte pas les applications clientes .NET Framework mais uniquement les applications ASP.NET. L'attribut autoConfig peut avoir l'une des valeurs suivantes :
La valeur par défaut dans le fichier Machine.config est True, à moins qu'il existe une configuration précédente. |
||||||||||||||||
clientConnectedCheck |
Spécifie la durée de conservation d'une demande dans la file d'attente avant qu'ASP.NET vérifie si le client est connecté. La valeur par défaut est "00:00:05" (5 secondes). |
||||||||||||||||
comAuthenticationLevel |
Spécifie le niveau d'authentification pour la sécurité DCOM. L'attribut comAuthenticationLevel peut avoir l'une des valeurs suivantes :
La valeur par défaut est Connect. |
||||||||||||||||
comImpersonationLevel |
Spécifie le niveau d'authentification pour la sécurité COM. L'attribut comImpersonationLevel peut avoir l'une des valeurs suivantes :
La valeur par défaut est Impersonate. |
||||||||||||||||
cpuMask |
Spécifie les processeurs (UC) d'un serveur multiprocesseur qualifiés pour exécuter des processus ASP.NET. Cette valeur spécifie un modèle binaire qui indique les processeurs qualifiés pour exécuter des threads ASP.NET. Par exemple, la valeur hexadécimale cpuMask 0x0d représente le modèle binaire 1101. Sur un ordinateur équipé de quatre processeurs (UC), cela indique que les processus ASP.NET peuvent être planifiés sur les UC 0, 2 et 3, mais pas sur l'UC 1. ASP.NET lance un processus de travail pour chaque UC qualifiée. Si l'attribut webGarden a la valeur true, cet attribut limite le nombre de processus de travail au nombre d'UC qualifiées. Le nombre maximal autorisé de processus de travail est égal au nombre d'UC. Si l'attribut webGarden a la valeur false, cet attribut est ignoré et un seul processus de travail sera exécuté. Il s'agit du comportement par défaut. La valeur par défaut est "0xffffffff". |
||||||||||||||||
enable |
Spécifie si le modèle de processus est activé. L'attribut enable peut avoir l'une des valeurs suivantes :
La valeur par défaut est true. |
||||||||||||||||
idleTimeout |
Spécifie la période d'inactivité, au format de chaîne h:min:s, après laquelle ASP.NET met automatiquement fin au processus de travail. La valeur par défaut est Infinite. |
||||||||||||||||
logLevel |
Spécifie les types d'événement à enregistrer dans le journal des événements. L'attribut logLevel peut avoir l'une des valeurs suivantes :
La valeur par défaut est Errors. |
||||||||||||||||
maxAppDomains |
Spécifie le nombre maximal de domaines d'application autorisés dans un processus. Cet attribut peut être inférieur ou égal à 2000. La valeur par défaut est 2000. |
||||||||||||||||
maxIoThreads |
Configure le nombre maximal par UC de threads d'E/S à utiliser pour le processus. Par exemple, si cette valeur correspond à 25 sur un serveur à un seul processeur, ASP.NET utilise les API d'exécution pour limiter à 25 le nombre de processus. Sur un serveur équipé de deux processeurs, la limite est définie à 50. La valeur de cet attribut doit être égale ou supérieure à la valeur du paramètre de l'attribut minFreeThread dans la section de configuration httpRuntime. Pour plus d'informations sur les types de thread, consultez la section (en anglais) « Threading Explained » dans Improving ASP.NET Performance. La plage de cet attribut varie entre 5 et 100. La valeur par défaut est 20. |
||||||||||||||||
maxWorkerThreads |
Configure la quantité maximale par UC de threads de travail à utiliser pour le processus. Par exemple, si cette valeur correspond à 25 sur un serveur à un seul processeur, ASP.NET utilise les API d'exécution pour limiter à 25 le nombre de processus. Sur un serveur équipé de deux processeurs, la limite est définie à 50. La valeur de cet attribut doit être égale ou supérieure à la valeur du paramètre de l'attribut minFreeThread dans la section de configuration httpRuntime. Pour plus d'informations sur les types de thread, consultez la section (en anglais) « Threading Explained » dans Improving ASP.NET Performance. La plage de cet attribut varie entre 5 et 100. La valeur par défaut est 20. |
||||||||||||||||
memoryLimit |
Spécifie la quantité de mémoire maximale autorisée, en tant que pourcentage de la mémoire système totale, que le processus de travail peut consommer avant qu'ASP.NET ne lance un nouveau processus et ne réassigne les demandes existantes. La valeur par défaut est 60. |
||||||||||||||||
minIoThreads |
Configure le nombre minimal par UC de threads d'E/S à utiliser pour le processus. Voir aussi maxIoThreads. Pour plus d'informations sur les types de thread, consultez la section (en anglais) « Threading Explained » dans Improving ASP.NET Performance. La valeur par défaut est 1. |
||||||||||||||||
minWorkerThreads |
Configure la quantité minimale par UC de threads de travail à utiliser pour le processus. Voir aussi maxWorkerThreads. Pour plus d'informations sur les types de thread, consultez la section (en anglais) « Threading Explained » dans Improving ASP.NET Performance. La valeur par défaut est 1. |
||||||||||||||||
password |
S'il est présent (et associé à un userName), cet attribut fait en sorte que le processus de travail s'exécute avec l'identité Microsoft Windows configurée. Consultez userName pour plus d'informations sur les noms spéciaux System et Machine qui n'exigent pas de mot de passe et pour plus d'informations sur le stockage des informations d'identification chiffrées des processus de travail dans le Registre.
La valeur par défaut est AutoGenerate. |
||||||||||||||||
pingFrequency |
Spécifie l'intervalle de temps, au format de modèle de processus standard (h:min:s), auquel l'extension ISAPI envoie une commande ping au processus de travail pour savoir s'il est en cours d'exécution. S'il ne fonctionne pas pour l'intervalle pingTimeout, le processus de travail est redémarré. La valeur par défaut est Infinite. |
||||||||||||||||
pingTimeout |
Spécifie l'intervalle de temps, dans le format de modèle de processus standard (h:min:s) après lequel un processus de travail sensible qui ne répond pas est redémarré. Les extensions ISAPI testent la ligne du processus de travail selon l'intervalle pingFrequency. Si le processus de travail ne répond pas dans l'intervalle pingTimeout, il est redémarré. La valeur par défaut est Infinite. |
||||||||||||||||
requestLimit |
Spécifie le nombre de demandes autorisées avant qu'ASP.NET ne lance automatiquement un nouveau processus de travail à la place de celui qui est en cours. La valeur par défaut est Infinite. |
||||||||||||||||
requestQueueLimit |
Spécifie le nombre des demandes autorisées dans la file d'attente avant qu'ASP.NET ne commence à retourner le message "503 - Serveur encombré" aux nouvelles demandes. La valeur par défaut est 5000. |
||||||||||||||||
responseDeadlockInterval |
Spécifie l'intervalle de temps, au format de modèle de processus standard (h:min:s) après lequel le processus est redémarré, si les conditions suivantes sont réunies :
La valeur par défaut est "0:03:00" (3 minutes). |
||||||||||||||||
responseRestartDeadlockInterval |
Cet attribut n'est plus utilisé par ASP.NET et est fourni uniquement à des fins de compatibilité. Sa présence dans un fichier de configuration n'entraîne pas d'erreur de configuration. Tout le recyclage en cas de condition de blocage est désormais contrôlé par l'attribut responseDeadlockInterval. La valeur par défaut est "0:03:00" (3 minutes). |
||||||||||||||||
restartQueueLimit |
Spécifie le nombre maximal de demandes mises en file d'attente en attendant que le processus de travail redémarre après un arrêt anormal. Ce paramètre ne s'applique pas dans le cas d'un arrêt normal ou d'un redémarrage standard. La valeur par défaut est 10. |
||||||||||||||||
serverErrorMessageFile |
Spécifie le contenu d'un fichier à utiliser à la place du message par défaut « Serveur non disponible » en cas d'erreur irrécupérable. Le chemin d'accès à ce fichier peut être absolu, ou relatif par rapport à Machine.config. Si cet attribut n'est pas présent, le message par défaut « Serveur non disponible » est utilisé. |
||||||||||||||||
shutdownTimeout |
Spécifie le nombre de minutes accordées au processus de travail pour qu'il s'arrête de lui-même. À l'expiration du délai, ASP.NET arrête le processus de travail. L'heure est exprimée au format de chaîne h:min:s. La valeur par défaut est "0:00:05" (5 secondes). |
||||||||||||||||
timeout |
Spécifie le nombre de minutes autorisées avant qu'ASP.NET ne lance automatiquement un nouveau processus de travail à la place de celui qui est en cours. La valeur par défaut est Infinite. |
||||||||||||||||
userName |
Spécifie qu'ASP.NET exécute le processus de travail avec une identité Windows différente de l'identité Windows utilisée comme identité de processus par défaut. Par défaut, cet attribut a la valeur Machine, et le processus s'exécute sous un compte d'utilisateur nommé ASPNET, créé automatiquement lors de l'installation d'ASP.NET. Le mot de passe du compte ASPNET est généré par chiffrement au moment de l'installation. Si des informations d'identification valides sont présentes dans cet attribut et l'attribut password, le processus est exécuté avec le compte donné. Une autre valeur de userName est System, avec le mot de passe AutoGenerate, qui exécute le processus en tant que compte d'administrateur et accorde des privilèges d'administrateur complets à tout le code utilisateur ASP.NET exécuté sous le processus. Pour plus d'informations concernant l'utilisation d'ASP.NET sur un serveur contrôleur de domaine, consultez la section « Notes », plus loin dans cette rubrique.
La valeur par défaut est "machine". |
||||||||||||||||
webGarden |
Contrôle l'affinité des UC lorsqu'il est utilisé avec l'attribut cpuMask. (Un serveur Web multiprocesseur est appelé jardin Web [Web garden]). L'attribut webGarden peut avoir l'une des valeurs suivantes :
La valeur par défaut est False. |
Éléments enfants
Aucun.
Éléments parents
Élément |
Description |
---|---|
system.web |
Spécifie l'élément racine de la section de configuration ASP.NET et contient des éléments de configuration qui configurent des applications Web ASP.NET et contrôlent le comportement des applications. |
Notes
Le système de configuration du code managé ne lit pas les paramètres de configuration processModel . Au lieu de cela, les paramètres de configuration processModel sont lus directement par la DLL non managée aspnet_isapi.dll. Les modifications apportées à cette section ne sont pas appliquées tant que le processus de travail IIS n'a pas redémarré.
Lorsqu'ASP.NET s'exécute sous IIS version 6 en mode natif, le modèle de processus IIS 6 est utilisé et certains attributs de la section processModel sont ignorés. Toutefois, les attributs suivants sont toujours appliqués :
autoConfig
maxIoThreads
maxWorkerThreads
minIoThreads
minWorkerThreads
requestQueueLimit
responseDeadlockInterval
Pour configurer l'identité et le cycle des processus ou d'autres valeurs de modèle de processus dans IIS 6.0, utilisez l'interface utilisateur Gestionnaire des services Internet pour configurer le processus de travail IIS pour votre application.
Remarque : |
---|
ASP.NET 2.0 ne peut pas être utilisé lorsque vous configurez IIS 6 pour exécuter ASP.NET en mode isolation IIS 5.0. |
Les valeurs d'heure se présentent au format "hours:minutes:seconds". Si un seul nombre est spécifié sans le signe deux-points, la valeur est supposée représenter des minutes ; timeout="4" est donc égal à timeout="00:04:00".
Si une application ASP.NET entraîne le redémarrage du processus de travail ASP.NET (aspnet_wp.exe sous Windows 2000 et Windows XP Professionnel, w3wp.exe sous Windows Server 2003) avec un message d'erreur indiquant que le redémarrage est provoqué par un état de blocage potentiel, vous devez augmenter l'attribut responseDeadlockInterval.
Contrôleurs de domaine et compte ASPNET local
Si vous installez le .NET Framework version 1.1 sur un contrôleur de domaine, l'installation ne crée pas le compte ASPNET local. Les applications ASP.NET s'exécutent sous d'autres identités, et notamment les suivantes :
Sur les contrôleurs de domaine Windows 2000 Server, les applications ASP.NET s'exécutent sous l'identité IWAM_nommachine.
Sur les contrôleurs de domaine Windows Server 2003, les applications ASP.NET s'exécutent sous l'identité SERVICE RÉSEAU, indépendamment du mode d'isolation IIS.
Dans certains cas, l'exécution d'ASP.NET sur un contrôleur de domaine exige certaines mesures supplémentaires pour garantir le fonctionnement correct de l'installation. Pour plus d'informations sur l'exécution de la version 1.1 du .NET Framework sur un contrôleur de domaine, accédez à la page de recherche de la Base de connaissances (KB) et consultez l'article Q824308, « IWAM Account is Not Granted the Impersonate Privilege for ASP.NET 1.1 on Windows 2000 Domain Controller with SP4 » (en anglais). Pour plus d'informations sur l'exécution de la version 1.0 du .NET Framework sur un contrôleur de domaine, accédez à la page de recherche de la Base de connaissances (KB) et consultez l'article Q315158, « ASP.NET ne fonctionne pas avec le compte ASPNET par défaut sur un contrôleur de domaine ».
Stockage d'un nom d'utilisateur et d'un mot de passe dans le Registre
Pour chiffrer le nom d'utilisateur et le mot de passe et les stocker dans le Registre, définissez les attributs userName et password comme indiqué dans l'exemple suivant.
userName="registry:HKLM\Software\AspNetProcess,Name"
password="registry:HKLM\Software\AspNetProcess,Pwd"
La portion de la chaîne située après le mot clé registry et avant la virgule (,) indique le nom de la clé de Registre ouverte par ASP.NET. La partie qui suit la virgule (,) contient un nom de valeur de chaîne unique à partir duquel ASP.NET lit les informations d'identification. La virgule (,) est obligatoire et les informations d'identification doivent être stockées dans la ruche HKLM. Si le format de configuration n'est pas correct, ASP.NET ne lancera pas le processus de travail et suivra le chemin de code d'échec de création de compte actif.
Les informations d'identification doivent être au format REG_BINARY et contenir la sortie d'un appel à la fonction API Windows CryptProtectData. Vous pouvez utiliser Aspnet_setreg.exe pour créer les informations d'identification chiffrées et les stocker dans le Registre. Aspnet_setreg.exe utilise CryptProtectData pour effectuer le chiffrement. Pour télécharger Aspnet_setreg.exe ainsi que le code source et la documentation Microsoft Visual C++, visitez le site Web ASP.NET et recherchez « aspnet_setreg ».
Vous devez configurer l'accès à la clé qui stocke les informations d'identification chiffrées afin que seuls les administrateurs et SYSTEM bénéficient d'un accès. Dans la mesure où la clé est lue par le processus ASP.NET exécuté sous SYSTEM, définissez les autorisations suivantes :
Administrators:F
SYSTEM:F
CREATOR OWNER:F
ProcessAccount: R
Cela contribue à protéger les données de plusieurs façons :
Les autorisations ACL exigent que l'identité accédant aux données soit un administrateur.
Un attaquant doit exécuter du code sur le serveur (CryptUnprotectData) pour récupérer les informations d'identification du compte.
Configuration par défaut
L'élément processModel par défaut n'est pas configuré explicitement dans le fichier Machine.config ou dans le fichier Web.config racine. Toutefois, il s'agit de la configuration par défaut retournée par l'application.
<processModel
enable="true"
timeout="Infinite"
idleTimeout="Infinite"
shutdownTimeout="00:00:05"
requestLimit="Infinite"
requestQueueLimit="5000"
restartQueueLimit="10"
memoryLimit="60"
webGarden="false"
cpuMask="0xffffffff"
userName="machine"
password="AutoGenerate"
logLevel="Errors"
clientConnectedCheck="00:00:05"
comAuthenticationLevel="Connect"
comImpersonationLevel="Impersonate"
responseDeadlockInterval="00:03:00"
responseRestartDeadlockInterval="00:03:00"
autoConfig="true"
maxWorkerThreads="20"
maxIoThreads="20"
minWorkerThreads="1"
minIoThreads="1"
serverErrorMessageFile=""
pingFrequency="Infinite"
pingTimeout="Infinite"
asyncOption="20"
maxAppDomains="2000"
/>
L'élément processModel par défaut est configuré dans le fichier Machine.config des versions 1.0 et 1.1 du .NET Framework.
<processModel
enable="true"
timeout="Infinite"
idleTimeout="Infinite"
shutdownTimeout="0:00:05"
requestLimit="Infinite"
requestQueueLimit="5000"
restartQueueLimit="10"
memoryLimit="60"
webGarden="false"
cpuMask="0xffffffff"
userName="machine"
password="AutoGenerate"
logLevel="Errors"
clientConnectedCheck="0:00:05"
comAuthenticationLevel="Connect"
comImpersonationLevel="Impersonate"
responseRestartDeadlockInterval="00:09:00"
responseDeadlockInterval="00:03:00"
<!-- In the .NET Framework version 1.1, the next two attributes are
set to 20. -->
maxWorkerThreads="25"
maxIoThreads="25"
/>
Informations sur les éléments
Gestionnaire de section de configuration |
|
Membre de configuration |
|
Emplacements configurables |
Machine.config |
Configuration requise |
Microsoft Internet Information Services (IIS) version 5.0, 5.1 ou 6.0 .NET Framework version 1.0, 1.1 ou 2.0 Microsoft Visual Studio 2003 ou Visual Studio 2005 |
Voir aussi
Tâches
Comment : configurer des répertoires spécifiques à l'aide des paramètres d'emplacement
Comment : verrouiller des paramètres de configuration ASP.NET
Concepts
Configuration de l'identité de processus ASP.NET
Hiérarchie du fichier de configuration ASP.NET et héritage
Sécurisation de la configuration ASP.NET
Scénarios de configuration ASP.NET
Référence
system.web, élément (Schéma des paramètres ASP.NET)
configuration, élément (Schéma des paramètres généraux)
Autres ressources
Paramètres généraux de configuration (ASP.NET)
Amélioration des performances ASP.NET
Paramètres de configuration ASP.NET
Administration de sites Web ASP.NET