WCF Services fehlerhaften Zustand
Ich habe viele webservices laufen in meinem Projekt aber etwas merkwürdiges passiert seit geraumer Zeit. Meine Dienste gelegentlich zu Abstürzen ohne Grund mit einer Fehlermeldung "Die Kommunikation Objekt-System.ServiceModel.- Kanäle.ServiceChannel, nicht für die Kommunikation verwendet, weil es sich in der Fehlerhaften Zustand." Dies geschieht meist, wenn ich führen Sie die Anwendung zuerst, was am morgen, nach dem Sie weniger Häufig auftreten. Alle Ideen, was könnte die Ursache dieses Fehlers?
- Haben Sie versucht, WCF-tracing?
- Ist dieser Fehler aus code verbraucht einen WCF-Dienst oder vom Dienst selbst?
- Nein, noch nicht. Ich bin auch nicht sicher über WCF-Ablaufverfolgung. Ne gute tutorials für mich zu bekommen begann? @Graham: Das ist im Grunde kommen aus dem code Verzehr der WCF-Dienst
- Helden Sie Beschreibungen über die Einstellung der WCF-tracing und mit SvcTraceViewer zu durchsuchen tracing-Daten. Legen Sie die Ablaufverfolgung in der service-host-Projekt. Tracing: msdn.microsoft.com/en-us/library/ms733025.aspx SvcTraceViewer: msdn.microsoft.com/en-us/library/ms732023.aspx
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn ein WCF-Dienst wirft einen
FaultException
ist, wird der client seinen Zustand geändertCommunicationState.Faulted
. Wenn Sie dann versuchen, mit dieser client-Objekt ein service-Betrieb, erhalten Sie den FehlerMöglicherweise auch diese Fehlermeldung angezeigt, wenn Sie versuchen, rufen Sie die
Close()
Methode auf einen fehlerhaften client, ich kann mich nicht erinnern.Können Sie überprüfen den Zustand Ihres client-Objekt durch die überprüfung der
State
Eigenschaft. Wenn Sie möchten, schließen Sie Ihren client richtig (was Sie tun sollten), müssen Sie rufen Sie dieAbort()
Methode, wenn der client in derFaulted
Staat, und dieClose()
Methode, wenn der client ist in einem anderen Zustand.using
, nicht wahr? WCF hört nie auf erstaunliche mich, wie schlecht es entworfen ist.Das klingt wie ein timeout kombiniert mit Umgang durch die fehlerhafte Dienstleistungen.
Dauert es länger, bis in der früh laufen, da code JIT-kompiliert, vielleicht auch Datenbank benötigt, um Daten zu Cachen und Abfrage-Pläne.
Hier ist ein Weg, um den WCF-client zu bereinigen nach sich selbst http://nimtug.org/blogs/damien-mcgivern/archive/2009/05/26/wcf-communicationobjectfaultedexception-quot-cannot-be-used-for-communication-because-it-is-in-the-faulted-state-quot-messagesecurityexception-quot-an-error-occurred-when-verifying-security-for-the-message-quot.aspx