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");
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.
// -- 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 ?
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.