Comment augmenter le délai d'expiration des demandes dans IIS 7.0? La même chose est faite sous l'onglet Application dans les paramètres de configuration ASP dans IIS 6.0. Je ne parviens pas à trouver la section de configuration asp.net dans IIS 7.0
Comment augmenter le délai d'expiration des demandes dans IIS 7.0? La même chose est faite sous l'onglet Application dans les paramètres de configuration ASP dans IIS 6.0. Je ne parviens pas à trouver la section de configuration asp.net dans IIS 7.0
Réponses:
Ajoutez ceci à votre configuration Web
<system.web>
<httpRuntime executionTimeout="180" />
</system.web>
https://msdn.microsoft.com/en-us/library/e1f13641(v=vs.85).aspx
Attribut TimeSpan facultatif.
Spécifie le nombre maximal de secondes qu'une demande est autorisée à s'exécuter avant d'être automatiquement arrêtée par ASP.NET.
Ce délai d'expiration s'applique uniquement si l'attribut de débogage dans l'élément de compilation est False. Pour éviter d’arrêter l’application pendant le débogage, ne définissez pas ce délai d’expiration sur une valeur élevée.
La valeur par défaut est "00:01:50" (110 secondes).
Dans IIS Manager, cliquez avec le bouton droit sur le site et allez dans Gérer le site Web -> Paramètres avancés . Sous l' option Limites de connexion , vous devriez voir Délai de connexion .
Pour augmenter le délai d'expiration de la demande, ajoutez ceci à web.config
<system.web>
<httpRuntime executionTimeout="180" />
</system.web>
et pour une page spécifique ajoutez ceci
<location path="somefile.aspx">
<system.web>
<httpRuntime executionTimeout="180"/>
</system.web>
</location>
La valeur par défaut est de 90 secondes pour .NET 1.x.
La valeur par défaut de 110 secondes pour .NET 2.0 et versions ultérieures.
Dans IIS> = 7, une <webLimits>
section a remplacé ConnectionTimeout
, HeaderWaitTimeout
, MaxGlobalBandwidth
et MinFileBytesPerSec
IIS 6 paramètres de la métabase.
Exemple de configuration:
<configuration>
<system.applicationHost>
<webLimits connectionTimeout="00:01:00"
dynamicIdleThreshold="150"
headerWaitTimeout="00:00:30"
minBytesPerSecond="500"
/>
</system.applicationHost>
</configuration>
Pour référence: plus d'informations sur ces paramètres dans IIS peuvent être trouvées ici . De plus, je n'ai pas pu ajouter cette section au web.config via "l'éditeur de configuration" du gestionnaire IIS, même si elle est apparue une fois que je l'ai ajoutée et recherché la configuration.
ConnectionTimeout
, pas celui de httpRuntime executionTimeout
.
Vous trouverez ci-dessous des étapes pour résoudre votre problème.
Je sais que la question portait sur ASP, mais peut-être que quelqu'un trouvera cette réponse utile.
Si vous avez un serveur derrière IIS 7.5 (par exemple Tomcat). Dans mon cas, j'ai une ferme de serveurs avec le serveur Tomcat configuré. Dans ce cas, vous pouvez modifier le délai d'expiration à l'aide du gestionnaire IIS:
ou vous pouvez le changer dans le fichier cofig:
Exemple:
<webFarm name="${SERVER_NAME}" enabled="true">
<server address="${SERVER_ADDRESS}" enabled="true">
<applicationRequestRouting httpPort="${SERVER_PORT}" />
</server>
<applicationRequestRouting>
<protocol timeout="${TIME}" />
</applicationRequestRouting>
</webFarm>
Le $ {TIME} est au format HH: mm: ss (donc si vous voulez le mettre à 90 secondes, mettez-y 00:01:30)
Dans le cas de Tomcat (et probablement d'autres conteneurs de servlet), vous devez vous rappeler de modifier le délai d'expiration dans % TOMCAT_DIR% \ conf \ server.xml (recherchez simplement l' attribut connectionTimeout dans la balise Connector , et rappelez-vous qu'il est spécifié en millisecondes )
Utilisez la commande Power Shell ci-dessous pour modifier le délai d'exécution (Request Timeout)
Veuillez noter que j'ai donné ceci pour le site Web par défaut, avant de les utiliser, veuillez changer le site, puis essayez de l'utiliser.
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site' -filter "system.web/httpRuntime" -name "executionTimeout" -value "00:01:40"
Ou, vous pouvez utiliser le code C # ci-dessous pour faire la même chose
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.GetWebConfiguration("Default Web Site");
ConfigurationSection httpRuntimeSection = config.GetSection("system.web/httpRuntime");
httpRuntimeSection["executionTimeout"] = TimeSpan.Parse("00:01:40");
serverManager.CommitChanges();
}
}
}
Ou, vous pouvez utiliser le JavaScript pour ce faire.
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site";
var httpRuntimeSection = adminManager.GetAdminSection("system.web/httpRuntime", "MACHINE/WEBROOT/APPHOST/Default Web Site");
httpRuntimeSection.Properties.Item("executionTimeout").Value = "00:01:40";
adminManager.CommitChanges();
Ou, vous pouvez utiliser les commandes AppCmd.
appcmd.exe set config "Default Web Site" -section:system.web/httpRuntime /executionTimeout:"00:01:40"