Comment augmenter le délai d'expiration des demandes dans IIS?


150

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:


182

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).


8
Cela peut-il être défini à partir de l'interface graphique du gestionnaire IIS 7?
Triynko

13
Le délai d'expiration est spécifié en secondes, la valeur par défaut est de 110 secondes. Remarque: Ce délai d'expiration s'applique uniquement si l'attribut de débogage dans l'élément <compilation> est défini sur false!
Jowen

1
@Jowen: Vous basculez! J'avais précédemment changé le débogage en faux il y a quelques jours et je ne l'associais pas à toutes les erreurs de temporisation que j'avais reçues. Maintenant je sais.
Doug S

Notez que la valeur maximale de executionTimeout est également la valeur maximale de TimeSpan (10675199.02: 48: 05.4775807) qui est ... plus ce dont vous avez besoin
Antoine Pelletier

72

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 .


6
Est-ce la même chose que le délai d'expiration de la demande. J'essaye de migrer des données à partir d'un document xml et du délai d'attente de reuqest. Donc, si j'augmente le délai de connexion, cela sera résolu.
Dotnet Rocks

12
Je ne pense pas que ce soit correct, si 'HTTP Keep-Alive' est activé, alors ce paramètre de synchronisation s'applique à lui, ce qui signifie combien de temps la connexion restera active, je ne pense pas que cela soit lié au 'timeout de la demande' (combien de temps il attend pour l'exécution d'une page) ..
visuel

1
Je pense que c'est la bonne réponse dans certaines situations, comme le téléchargement d'un gros fichier. En attendant le téléchargement, le
David Hammond

45

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.


3
Vous avez gagné le +1 avec les informations sur l'emplacement
Gonza Oviedo

Très utile. Merci!
jim1427

29

Dans IIS> = 7, une <webLimits>section a remplacé ConnectionTimeout, HeaderWaitTimeout, MaxGlobalBandwidthet MinFileBytesPerSecIIS 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.


5
Cela remplace ConnectionTimeout, pas celui de httpRuntime executionTimeout.
user2864740

15

Vous trouverez ci-dessous des étapes pour résoudre votre problème.

  1. Ouvrez votre IIS
  2. Allez dans l' option " Sites ".
  3. Clic droit de la souris.
  4. Ensuite, ouvrez la propriété " Gérer le site Web ".
  5. Cliquez ensuite sur " Paramètres avancés ".
  6. Développez la section " Limites de connexion ", ici vous pouvez définir votre " délai de connexion "

entrez la description de l'image ici


lien pour plus d'informations: docs.microsoft.com/en-us/previous-versions/dotnet
...

11

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:

  • allez dans Batteries de serveurs -> {Nom du serveur} -> Proxy
  • modifier la valeur dans la zone de saisie Time-out
  • cliquez sur Appliquer (coin supérieur droit)

ou vous pouvez le changer dans le fichier cofig:

  • ouvrez % WinDir% \ System32 \ Inetsrv \ Config \ applicationHost.config
  • ajuster la configuration du serveur webFarm pour qu'elle soit similaire à ce qui suit

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 )


2
Veuillez noter que vous ne devez publier que des réponses directement liées à la question posée. Étant donné que cette question concerne uniquement IIS, une réponse contenant des informations sur Tomcat n'est vraiment pas pertinente.
Andrew Barber

9
Dans ce cas, je pense que la réponse est pertinente car le cas d'utilisation spécifié ici (en utilisant IIS Application Request Routing pour acheminer vers un autre serveur) concerne IIS. Le paramètre ici est également configurable dans le Gestionnaire IIS. FWIW, cette réponse m'a aidé à déterminer le délai d'expiration de la demande à modifier. (Puisqu'il y a beaucoup de paramètres de délai d'expiration dans le gestionnaire IIS)
Jensen Ching

3

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" 
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.