web-dev-qa-db-fra.com

Comment augmenter le délai d'expiration d'une demande de service Web?

J'ai une application Web ASP.NET que je ne peux pas modifier (je n'ai que les binaires). Cette application se connecte à un service Web et il semble que la connexion soit fermée du côté client (mon application Web). J'ai augmenté le "executionTimeout" dans le fichier machine.config du serveur de destination mais mon application web semble toujours s'arrêter après avoir attendu un moment.

Existe-t-il un moyen d'augmenter le délai d'expiration de mon application Web en modifiant simplement le fichier web.config? Comme je l'ai dit ... Je ne peux pas modifier le délai d'expiration dans le code, donc ma seule option serait via les fichiers de configuration.

Merci!

19
sachaa

Essayez si cela fonctionne pour vous.

Tout d'abord, vous devez augmenter le délai d'expiration de l'attribut executionTimeout de l'élément httpRuntime. Notez que cela est mentionné dans Secondes contrairement aux autres attributs de délai d'expiration comme le délai d'expiration de session et autres.

<httpRuntime 
    executionTimeout="36000"

De plus, cet attribut ne prend effet que lorsque vous définissez l'attribut de débogage de l'élément Compilation sur false. Ceci est également spécifié dans le lien MSDN que vous avez mentionné. Comme,

<compilation 
   debug="false" 
../>

Mais cela fonctionne en conjonction avec le délai d'expiration de la session. Oui, si la session expire, alors une erreur sera levée. et il n'attendrait pas que la valeur executionTimeout prenne effet. vous devez donc également définir le délai d'expiration de la session sur une valeur supérieure. Et notez que c'est en quelques minutes. qui ressemblerait,

<sessionState 
    mode="InProc" 
    timeout="360"
    ...
    />

Et notez que tout cela serait annulé par le processus de recyclage AppPool. vous devez donc définir la valeur du délai d'inactivité de l'Apppool que votre site Web utilise au moins la même valeur/plus élevée que le délai d'expiration de la session.

Je l'ai trouvé ici http://www.eggheadcafe.com/community/aspnet/17/10111748/how-can-we-increase-the-t.aspx

26
Thea

Le délai d'expiration par défaut de l'application Web est de 90 secondes, ce qui est généralement plus que suffisant pour une utilisation générale. Il est important de noter d'où vient le timeout. Est-ce à partir de la page elle-même ou quelque chose dans la page qui la cause. Dans les deux cas, il semblerait que "la page" expire.

Je suis tombé sur cette question car ma page arrivait à son terme. J'ai découvert que l'exception provenait de SQL (lire l'erreur réelle), donc c'était vraiment un problème SQL. Une fois que je le savais, je pouvais facilement le réparer.

5
Hammad Khan