2009-12-23 9 views
0

J'ai 2 services wcf, 1 qui interroge l'autre service à intervalles réguliers. Le service2 est hébergé dans no. de machines avec la même configuration. Mon problème est que chaque fois que le service d'interrogation est redémarré, même si le service2 sur d'autres machines fonctionne correctement, je ne reçois pas la réponse de ces services (en principe, il arrive à expiration - obtenir SYSTEM.TimeOutException). Si j'essaie d'accéder au même service (service2) à partir d'une application temporaire (sans redémarrer le service2), j'obtiens une réponse. Si je redémarre le service2, que cela fonctionne correctement, le service1 (service d'interrogation) obtient les réponses de tous les services hébergés (Service2).L'interrogation du service WCF se bloque

Ne sait pas ce qui pose problème.

Cordialement, Chirag

Répondre

0

à votre VS Fixez service WCF qui pend. Et découvrez si votre connexion est réussie.

Faites-le avec les deux services, de sorte que vous puissiez déboguer les services lors de l'exécution.

0

Si vous utilisez une liaison de session (netTcpBinding, wsHttpBinding), il est plus que probable que vous ne fermez pas votre canal client de manière explicite lorsque vous en avez terminé avec. Cela entraînerait le comportement que vous voyez, car la session prend environ une minute pour expirer si vous ne le fermez pas explicitement, et le nombre maximal de sessions par défaut est faible (10) - le serveur laissera de nouvelles sessions s'empiler jusqu'à les anciens se ferment. Vous pouvez également ajuster la limitation de service sur la liaison côté serveur pour augmenter le nombre maximal de sessions ouvertes autorisées, mais vous devez vous assurer que vos clients sont correctement nettoyés en premier.