WCF name pipe et timeout idle

Messages postés
36
Date d'inscription
dimanche 9 mars 2003
Statut
Membre
Dernière intervention
21 mai 2009
- - Dernière réponse : virturel
Messages postés
16
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
14 décembre 2015
- 10 févr. 2010 à 10:42
;lmkl
Bonjour, je suis en train de faire deux application qui communique par WCF et les pipe nommés.

La communication fonctionne sauf si je laisse la connection ouverte sans faire de demande pendant un certain temps. La connection passe en état fault.

On dirait qu'il y a un problème de timout mais je n'arrive pas à trouver comment le configurer.

Voici le fichier app.config coté serveur WCF:
<html><configuration><system.servicemodel><services><service name="MY_Service.CWcfServerService"><endpoint address="net.pipe://localhost/NetNamedPipeBinding_MY" binding="netNamedPipeBinding" contract="MY_Library.IWcfServiceContract"></endpoint></service></services></system.servicemodel></configuration>

et coté client WCF je n'ai pas de app.config, tout est fait dans le code:

// -- OUVRIR OU FERMER LA COMMUNICATION AVEC LE SERVER WCF --
public bool Open()
{
bool bRet;

NetNamedPipeBinding netNamedPipeBinding = new NetNamedPipeBinding();
EndpointAddress endPointAddress = new EndpointAddress("net.pipe://localhost/NetNamedPipeBinding_MY");

m_channelFactory = new ChannelFactory(netNamedPipeBinding, endPointAddress);
try
{
m_channelFactory.Open();
m_wcfSericeContract = m_channelFactory.CreateChannel();
bRet = true;
}
catch (Exception)
{
// TODO GERER L'EXCEPTION
bRet = false;
}
return bRet;
}

Pouvez-vous m'aider pour configurer les timoute de WCF ?</html>
Afficher la suite 

5 réponses

Messages postés
36
Date d'inscription
dimanche 9 mars 2003
Statut
Membre
Dernière intervention
21 mai 2009
0
Merci
Bonjour, je suis en train de faire deux application qui communique par WCF et les pipe nommés. La communication fonctionne sauf si je laisse la connection ouverte sans faire de demande pendant un certain temps.
La connection passe en état fault. On dirait qu'il y a un problème de timout mais je n'arrive pas à trouver comment le configurer.

Voici mon fichier app.config coté serveur WCF:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<services>
<service name="MY_Service.CWcfServerService">
<endpoint address="net.pipe://localhost/NetNamedPipeBinding_MY" binding="netNamedPipeBinding" contract="MY_Library.IWcfServiceContract" />
</service>
</services>
</system.serviceModel>
</configuration>

et coté client WCF je n'ai pas de app.config, tout est fait dans le code:

private ChannelFactory m_channelFactory;
private IWcfServiceContract m_wcfSericeContract;

// -- OUVRIR OU FERMER LA COMMUNICATION AVEC LE SERVER WCF --
public bool Open()
{
bool bRet;

NetNamedPipeBinding netNamedPipeBinding = new NetNamedPipeBinding();
EndpointAddress endPointAddress = new EndpointAddress("net.pipe://localhost/NetNamedPipeBinding_MY");

m_channelFactory = new ChannelFactory(netNamedPipeBinding, endPointAddress);
try
{
m_channelFactory.Open();
m_wcfSericeContract = m_channelFactory.CreateChannel();
bRet = true;
}
catch (Exception)
{
// TODO GERER L'EXCEPTION
bRet = false;
}
return bRet;
}
Pouvez-vous m'aider pour configurer les timoute de WCF ?
Commenter la réponse de watoubilly
Messages postés
36
Date d'inscription
dimanche 9 mars 2003
Statut
Membre
Dernière intervention
21 mai 2009
0
Merci
UP
Commenter la réponse de watoubilly
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
42
0
Merci
Salut,
Est-ce que tu as déjà jeté un oeil à la doc?!
http://msdn.microsoft.com/en-us/library/ms731291.aspx

Sinon y'a aussi éventuellement
http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/8c0605d5-d5c2-4672-93c7-d21ca7cf86aa

<hr />
-Blog-
-Site Perso-
Commenter la réponse de cs_Bidou
Messages postés
36
Date d'inscription
dimanche 9 mars 2003
Statut
Membre
Dernière intervention
21 mai 2009
0
Merci
Merci pour les liens Bidou je testerai asap ...
Commenter la réponse de watoubilly
Messages postés
16
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
14 décembre 2015
0
Merci
Bonjour,

J'ai exactement le même problème de timeout entre un client Silverlight 3 et un WCF : Au bout d'un certain temps, le client est déconnecté. Ce temps semble être variable...

Du coup, la "solution" que j'ai trouvé est de de créer un timer sur le client. Ce timer appelle une méthode WCF toute les 2 minutes. Cette méthode ne fait rien (Elle renvoit "0") mais réactive la communication. Ca semble fonctionner. Mais j'ai besoin d'un peu plus de temps de test pour valider que c'est ok.

Cette méthode est vraiment du bricolage crade. Surtout s'il doit y avoir un trafic important (nombreux clients) ! Si quelqu'un a une solution, je suis prenneur.

Merci
Philippe
Commenter la réponse de virturel