WCF name pipe et timeout idle

watoubilly Messages postés 36 Date d'inscription dimanche 9 mars 2003 Statut Membre Dernière intervention 21 mai 2009 - 8 mai 2009 à 13:33
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>

5 réponses

watoubilly Messages postés 36 Date d'inscription dimanche 9 mars 2003 Statut Membre Dernière intervention 21 mai 2009
8 mai 2009 à 13:36
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 ?
0
watoubilly Messages postés 36 Date d'inscription dimanche 9 mars 2003 Statut Membre Dernière intervention 21 mai 2009
21 mai 2009 à 20:51
UP
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
21 mai 2009 à 23:24
0
watoubilly Messages postés 36 Date d'inscription dimanche 9 mars 2003 Statut Membre Dernière intervention 21 mai 2009
21 mai 2009 à 23:34
Merci pour les liens Bidou je testerai asap ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
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
0
Rejoignez-nous