2010-04-16 5 views
9

Je reçois une exception CommunicationException lors de l'utilisation du service WCF. Le message est le suivant:CommunicationException avec message 'séquence non reconnue' dans WCF

L'extrémité distante ne reconnaît plus cette séquence. Cela est probablement dû à un abandon sur le point de terminaison distant. La valeur de wsrm: Identifier n'est pas un identifiant de séquence connu. La session fiable a été faillée.

L'exception est levée dans un moment après l'appel d'une méthode de contrat. Avant d'appeler la méthode de contrat, l'état du canal est Ouvert. Je restaure mon client de service après avoir attrapé cette exception et pendant un certain temps cela fonctionne très bien. Mais alors cette erreur se produit à nouveau. Il semble que le dépassement de temps soit dépassé, mais je ne peux pas comprendre lequel exactement.

J'utilise wsHttpBinding avec reliableSession activé. InactivityTimeout est défini sur une demi-heure et je suis sûr qu'il n'est pas dépassé, car une exception est levée plus tôt.

Répondre

7

J'ai résolu le problème. La raison était RecieveTimeout du côté serveur. Il a été réglé sur 1 minute, donc après n'avoir reçu aucune requête pendant 1 minute, le serveur a été utilisé pour fermer un canal, et lorsque le client a tenté d'appeler un contrat, le canal a déjà été bloqué à cause du timeout.

Je trouve la solution après avoir lu cet article:

http://msdn.microsoft.com/en-us/library/system.servicemodel.reliablesession.inactivitytimeout.aspx

0

J'ai vu cela se produire lorsqu'un pool d'applications est recyclé. Regardez la dernière section de ce blog sur le recyclage des services.

2

J'ai reçu cette erreur lors de la mise en place d'un nouveau service WCF qui retourne une liste d'objets. D'après ce que je comprends, les services WCF ne peuvent transmettre que très simplement des objets très simples.

Ainsi, les objets ayant n'importe quoi d'autre que les propriétés publiques ne seront pas transférables.

L'objet possédait une propriété en lecture seule faisant un peu de logique. Une fois que je me suis débarrassé de cela, reconstruit, et mis à jour les références Web, l'erreur est partie.

0

Astuce: Si vous renvoyez un objet et qu'il a des propriétés, vérifiez les objets et les ensembles de chacun. Nous avons eu un problème avec ça.

Questions connexes