Runtime de serveur <serverRuntime>
Vue d’ensemble
L’élément <serverRuntime>
configure les paramètres suivants qui sont liés au runtime du serveur Internet Information Services (IIS) 7 :
Quand l’attribut enabled est défini sur true, IIS 7 est configuré pour fournir du contenu sur l’URL où l’élément
<serverRuntime>
est configuré ; quand l’attribut enabled est défini sur false, IIS 7 est configuré pour ne pas fournir de contenu sur cette URL.L’attribut alternateHostName spécifie un nom d’hôte différent du nom de l’ordinateur indiqué dans l’en-tête HTTP Content-location.
L’attribut appConcurrentRequestLimit spécifie le nombre maximal de demandes simultanées qui peuvent être mises en file d’attente pour une application.
L’attribut enableNagling active ou désactive le nagling, qui est une optimisation pour HTTP sur TCP visant à augmenter l’efficacité en essayant de réduire le nombre de paquets requis avant l’envoi des données. Voici comment le nagling fonctionne : il attend d’envoyer un paquet jusqu’à ce que sa zone de données soit pleine, jusqu’à l’expiration d’un délai de 200 millisecondes ou jusqu’à ce que l’expéditeur indique qu’il a terminé l’envoi des données. Les versions 5.1 et antérieures d’IIS utilisent le nagling pour toutes les données envoyées au client.
Remarque
Le nagling peut présenter cet inconvénient : si une extension ne remplit pas le paquet, il reste un délai de 200 millisecondes avant l’envoi de la réponse. Ce comportement s’observe le plus souvent quand vous utilisez des extensions ISAPI qui prennent en charge un en-tête HTTP keep-alive dans la réponse envoyée au client. Dans ce cas, IIS ne ferme pas la connexion après la réponse, ce qui explique le délai d’attente de 200 millisecondes du paquet final.
IIS 7 vérifie l’état de deux attributs pour déterminer le niveau de trafic d’une URL particulière. L’attribut frequentHitThreshold configure le nombre de demandes, et l’attribut frequentHitTimePeriod configure la durée autorisée avant que cette URL soit considérée comme une URL fréquemment demandée. Ces informations sont utilisées lors de l’écriture de modules HTTP qui se servent de ces informations pour le traitement. Pour plus d’informations, consultez l’article Méthode IHttpUrlInfo::IsFrequentlyHit.
Les attributs maxRequestEntityAllowed et uploadReadAheadSize configurent respectivement la limite du nombre maximal d’octets autorisés dans le corps d’une demande et la limite du nombre d’octets qu’un serveur web lit dans une mémoire tampon et passe à une extension ISAPI. Gardez à l’esprit que l’augmentation de ces valeurs permet à l’utilisateur final de charger davantage de contenu, ce qui peut impacter les ressources mémoire du runtime IIS. Il est recommandé de maintenir ces valeurs à un niveau adéquat par rapport aux besoins de l’application, et d’utiliser la valeur maximale uniquement dans des circonstances exceptionnelles.
Nouveautés dans IIS 7.5
Dans IIS 7.5, l’attribut authenticatedUserOverride a été ajouté à l’élément <serverRuntime>
, ce qui permet de configurer si le runtime du serveur IIS 7 fournit l’identité de l’utilisateur authentifié ou l’identité du processus de travail dans les méthodes IHttpUser::GetPrimaryToken et IHttpUser::GetImpersonationToken. Cet attribut peut être défini sur UseAuthenticatedUser ou UseWorkerProcessUser. Ces valeurs spécifient respectivement si le runtime du serveur IIS 7 fournit l’identité de l’utilisateur authentifié ou l’identité du processus de travail pour chaque module utilisant l’emprunt d’identité.
Compatibilité
Version | Notes |
---|---|
IIS 10.0 | L’élément <serverRuntime> n’a fait l’objet d’aucune modification dans IIS 10.0. |
IIS 8.5 | L’élément <serverRuntime> n’a fait l’objet d’aucune modification dans IIS 8.5. |
IIS 8.0 | L’élément <serverRuntime> n’a fait l’objet d’aucune modification dans IIS 8.0. |
IIS 7.5 | L’attribut authenticatedUserOverride a été ajouté dans IIS 7.5. |
IIS 7.0 | L’élément <serverRuntime> a été introduit dans IIS 7.0. |
IIS 6.0 | L’élément <serverRuntime> remplace les propriétés de métabase IIS 6.0 suivantes :
|
Programme d’installation
L’élément <serverRuntime>
est inclus dans l’installation par défaut d’IIS 7.
Procédure
Il n’existe pas d’interface utilisateur vous permettant de configurer l’élément <serverRuntime>
pour IIS 7. Pour obtenir des exemples sur la façon de configurer l’élément <serverRuntime>
programmatiquement, consultez la section Exemples de code de ce document.
Configuration
Attributs
Attribut | Description | ||||||
---|---|---|---|---|---|---|---|
alternateHostName |
Attribut de chaîne facultatif. Spécifie le nom d’hôte à utiliser pour la redirection. |
||||||
appConcurrentRequestLimit |
Attribut uint facultatif. Spécifie le nombre maximal de demandes pouvant être mises en file d’attente pour une application. La valeur par défaut est 5000 . |
||||||
authenticatedUserOverride |
Attribut enum facultatif. Spécifie si le runtime du serveur IIS 7 fournit l’identité de l’utilisateur authentifié ou l’identité du processus de travail pour les modules qui utilisent l’emprunt d’identité. Remarque : Cet attribut a été ajouté dans IIS 7.5.
UseAuthenticatedUser . |
||||||
enabled |
Attribut Boolean facultatif. Spécifie si les applications sur le serveur web sont autorisées à fournir du contenu (true) ou si elles ne le sont pas (false). La valeur par défaut est true . |
||||||
enableNagling |
Attribut Boolean facultatif. Spécifie si le nagling est activé (true) ou désactivé (false). La valeur par défaut est false . |
||||||
frequentHitThreshold |
Attribut uint facultatif. Spécifie le nombre de fois où une URL doit être demandée, dans l’intervalle de temps spécifié dans l’attribut frequentHitTimePeriod, pour être considérée comme une URL fréquemment demandée. La valeur doit être comprise entre 1 et 2147483647. La valeur par défaut est 2 . |
||||||
frequentHitTimePeriod |
Attribut timeSpan facultatif. Spécifie l’intervalle de temps durant lequel une URL doit être demandée le nombre de fois spécifié dans l’attribut frequentHitThreshold pour être considérée comme une URL fréquemment demandée. La valeur par défaut est 00:00:10 (10 secondes). |
||||||
maxRequestEntityAllowed |
Attribut uint facultatif. Spécifie le nombre maximal d’octets autorisés dans le corps d’une demande. Si l’en-tête Content-Length spécifie un plus grand nombre, IIS envoie l’erreur HTTP 403 en réponse. La valeur par défaut est 4294967295 (illimité). |
||||||
uploadReadAheadSize |
Attribut uint facultatif. Spécifie le nombre d’octets qu’un serveur web lit dans une mémoire tampon et passe à un module ou une extension ISAPI. Cela se produit une fois pour chaque demande du client. Le module ou l’extension ISAPI reçoit toutes les données supplémentaires directement du client. La valeur doit être comprise entre 0 et 2147483647. La valeur par défaut est 49152 . |
Éléments enfants
Aucune.
Exemple Configuration
L’exemple de configuration suivant définit l’attribut enable de l’élément <serverRuntime>
sur true, puis il configure le nombre de demandes pour qu’une URL soit considérée comme « fréquemment demandée » en définissant l’attribut frequentHitThreshold sur 5 demandes et l’attribut frequentHitTimePeriod sur 20 secondes.
<location path="Default Web Site">
<system.webServer>
<serverRuntime enabled="true"
frequentHitThreshold="5"
frequentHitTimePeriod="00:00:20" />
</system.webServer>
</location>
Exemple de code
Les exemples de code suivants définissent l’attribut enable de l’élément <serverRuntime>
sur true, puis ils configurent le nombre de demandes pour qu’une URL soit considérée comme « fréquemment demandée » en définissant l’attribut frequentHitThreshold sur 5 demandes et l’attribut frequentHitTimePeriod sur 20 secondes.
AppCmd.exe
appcmd.exe set config "Default Web Site" -section:system.webServer/serverRuntime /enabled:"True" /commit:apphost
appcmd.exe set config "Default Web Site" -section:system.webServer/serverRuntime /frequentHitThreshold:"5" /commit:apphost
appcmd.exe set config "Default Web Site" -section:system.webServer/serverRuntime /frequentHitTimePeriod:"00:00:20" /commit:apphost
Remarque
Veillez à 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 serverRuntimeSection = config.GetSection("system.webServer/serverRuntime", "Default Web Site");
serverRuntimeSection["enabled"] = true;
serverRuntimeSection["frequentHitThreshold"] = 5;
serverRuntimeSection["frequentHitTimePeriod"] = TimeSpan.Parse("00:00:20");
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 serverRuntimeSection As ConfigurationSection = config.GetSection("system.webServer/serverRuntime", "Default Web Site")
serverRuntimeSection("enabled") = True
serverRuntimeSection("frequentHitThreshold") = 5
serverRuntimeSection("frequentHitTimePeriod") = TimeSpan.Parse("00:00:20")
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var serverRuntimeSection = adminManager.GetAdminSection("system.webServer/serverRuntime", "MACHINE/WEBROOT/APPHOST/Default Web Site");
serverRuntimeSection.Properties.Item("enabled").Value = true;
serverRuntimeSection.Properties.Item("frequentHitThreshold").Value = 5;
serverRuntimeSection.Properties.Item("frequentHitTimePeriod").Value = "00:00:20";
adminManager.CommitChanges();
VBScript
Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set serverRuntimeSection = adminManager.GetAdminSection("system.webServer/serverRuntime", "MACHINE/WEBROOT/APPHOST/Default Web Site")
serverRuntimeSection.Properties.Item("enabled").Value = True
serverRuntimeSection.Properties.Item("frequentHitThreshold").Value = 5
serverRuntimeSection.Properties.Item("frequentHitTimePeriod").Value = "00:00:20"
adminManager.CommitChanges()