2010-04-16 4 views
9

Ich bekomme eine CommunicationException während WCF-Dienst verwenden. Die Nachricht lautet:CommunicationException mit 'nicht erkannte Sequenz' Nachricht in WCF

Der Remote-Endpunkt erkennt diese Sequenz nicht mehr. Dies ist höchstwahrscheinlich auf einen Abbruch am Remote-Endpunkt zurückzuführen. Der Wert von wsrm: Identifier ist kein bekannter Sequence Identifier. Die zuverlässige Sitzung wurde bemängelt.

Die Ausnahme wird in einem Moment ausgelöst, nachdem eine Vertragsart aufgerufen wurde. Vor dem Aufruf der Vertragsmethode wird der Kanalstatus geöffnet. Ich stelle meinen Dienst-Client wieder her, nachdem ich diese Ausnahme abgefangen habe, und seit einiger Zeit funktioniert es einwandfrei. Aber dann tritt dieser Fehler erneut auf. Es scheint, dass ein Timeout überschritten wird, aber ich kann nicht genau welche verstehen.

Ich verwende wsHttpBinding mit reliableSession aktiviert. Die InactivityTimeout ist auf eine halbe Stunde eingestellt und ich bin mir sicher, dass sie nicht überschritten wird, da die Ausnahme früher ausgelöst wird.

Antwort

7

Ich löste das Problem. Der Grund war RecieveTimeout auf einer Serverseite. Es wurde auf 1 Minute eingestellt. Nachdem keine Anfragen während eines 1-Minuten-Servers zum Schließen eines Kanals eingegangen waren und der Client versuchte, einen Vertrag anzurufen, war der Kanal aufgrund des Timeouts bereits abgestürzt.

fand ich die Lösung nach dem Lesen dieses Artikels:

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

0

Ich habe gesehen, dass dies passiert, wenn ein Anwendungspool recycelt wird.

Schauen Sie sich den letzten Abschnitt dieser blog über Service-Recycling.

2

ich diesen Fehler erhalten, während einen neuen WCF-Dienst, der eine Liste von Objekten zurück einrichten.

Mein Verständnis ist, dass WCF-Dienste nur sehr einfache Objekte zurück führen können.

Objekte mit anderen als öffentlichen Eigenschaften sind daher nicht übertragbar.

Das Objekt hatte eine schreibgeschützte Eigenschaft, die ein wenig Logik macht.

Sobald ich dies los, umgebaut und aktualisiert die Web-Referenzen, ging der Fehler weg.

0

Tipp: Wenn Sie ein Objekt zurückgeben und es Eigenschaften hat, überprüfen Sie die gets und die Mengen von jedem. Wir hatten ein Problem damit.

Verwandte Themen