[SYSTEM.NET.WEBEXCEPTION - C#] Problème de timeout

Résolu
nerix27 Messages postés 86 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 21 juin 2007 - 24 août 2005 à 15:36
nerix27 Messages postés 86 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 21 juin 2007 - 24 août 2005 à 16:15
Bonjour,
je fais une appli qui utilise un webservice sur un serveur à distance...
Dans ce webservice, il y a une fonction qui gère des infos via une requête SQL...
Cette requête prend environ 4 minutes à s'exécuter... C'est le temps qu'elle met lorsque je teste le webservice en local sur mon serveur.
Mais dès que j'appelle la fonction du webservice depuis mon appli c#, il me bloque après 100 secondes d'exécution...

D'après ce que je vois, c'est le timeout du system.net.webexception qui est réglé sur 100...

Dans ma variable gérant mon webservice, j'ai bien une propriété Timeout, mais on ne peut pas la modifier..

D'autre part, j'ai modifié le Timeout dans le fichier machine.config sur le serveur proposant le webservice (emplacement : \%systemroot%\Microsoft.NET\Framework\v1.1.4322\CONFIG\), mais sans succès !!!

Alors comment faire pour augmenter cette valeur dans mon appli ???

Merci pour vos réponses...

2 réponses

TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
24 août 2005 à 15:48
Plusieurs solutions :

- Faire de l'asynchrone
- <httpRuntime executionTimeout = "cequetuveux"> dans le MAchine.config distant
- <sessionState timeout = "cequetuveux"> dans le web.config
- <httpRuntime executionTimeout = "cequetuveux"> dans le web.config , ca surcharge le machine.config
- webserver.Service1 ws = new webserver.Service1();
ws.Timeout = System.Threading.Timeout.Infinite;
- Dans le reference.cs de ton WebService ajouter :

protected override System.Net.WebRequest GetWebRequest(Uri uri)
{
System.Net.HttpWebRequest webRequest =
(System.Net.HttpWebRequest) base.GetWebRequest(uri);
webRequest.KeepAlive = false;
return webRequest;
}


Voilà ...
3
nerix27 Messages postés 86 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 21 juin 2007 2
24 août 2005 à 16:15
Un grand merci ça marche impec :
- webserver.Service1 ws = new webserver.Service1();
ws.Timeout = System.Threading.Timeout.Infinite;

J'avais essayer de le bidouiller tout à l'heure sans résultat !

Merci TheSaib pour avoir été aussi rapide... ;)
0
Rejoignez-nous