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

nerix27 86 Messages postés jeudi 23 octobre 2003Date d'inscription 21 juin 2007 Dernière intervention - 24 août 2005 à 15:36 - Dernière réponse : nerix27 86 Messages postés jeudi 23 octobre 2003Date d'inscription 21 juin 2007 Dernière intervention
- 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...
Afficher la suite 

2 réponses

Répondre au sujet
TheSaib 2369 Messages postés mardi 17 avril 2001Date d'inscription 26 décembre 2007 Dernière intervention - 24 août 2005 à 15:48
+3
Utile
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à ...
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de TheSaib
nerix27 86 Messages postés jeudi 23 octobre 2003Date d'inscription 21 juin 2007 Dernière intervention - 24 août 2005 à 16:15
0
Utile
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... ;)
Commenter la réponse de nerix27

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.