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

Signaler
Messages postés
86
Date d'inscription
jeudi 23 octobre 2003
Statut
Membre
Dernière intervention
21 juin 2007
-
Messages postés
86
Date d'inscription
jeudi 23 octobre 2003
Statut
Membre
Dernière intervention
21 juin 2007
-
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

Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
20
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à ...
Messages postés
86
Date d'inscription
jeudi 23 octobre 2003
Statut
Membre
Dernière intervention
21 juin 2007
2
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... ;)