WCF-Fehler Der Kommunikations-Objekt "System".ServiceModel.- Kanäle.ServiceChanne, nicht für die Kommunikation verwendet, weil es sich in der Fehlerhaften Zustand
Bekommen wir
"Auf dem Kommunikationsobjekt "System".ServiceModel.- Kanäle.ServiceChannel, nicht für die Kommunikation verwendet, weil es sich in der Fehlerhaften Zustand."
Nachricht, wenn wir schließen Sie die Anwendung. Kann mir jemand sagen wie es zu lösen ist? Wir wissen, es ist Kommunikation Kanal versucht zu schließen, aber es ist nicht in der Lage zu schließen, wegen Dienst nicht verfügbar ist oder im fehlerhaften Zustand.
Alles was ich sagen kann ist, wenn der service nicht verfügbar ist, aber der Garbage collector versucht, um das Objekt zu zerstören, die Kommunikation Objekte aufrufen der service-Close-Funktion. Da bekommen wir Ausnahme.
Nicht beantworten wie ich kann nicht sagen, WARUM seine bemängelt; aber Sie können immer überprüfen, um zu sehen, wenn Ihr in den fehlerhaften Zustand, bevor Sie versuchen, um es zu schließen.
InformationsquelleAutor | 2009-04-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie Sie bitten, eine Frage zu einer exception, sollten Sie die post der gesamten Ausnahme, einschließlich aller InnerException-Instanzen. Sie sollten die Ausnahme abfangen, display ab.ToString(), dann rethrow die Ausnahme mit "werfen":
In diesem Fall Frage ich mich, wenn Sie einen mit - block, um Ihre proxy-Instanziierung:
Es ist ein design-Fehler im WCF, macht dies der einzige Ort in .NET, wo Sie sollten nicht mit einem mit block. Stattdessen müssen Sie das von hand machen. Sehen http://web.archive.org/web/20100703123454/http://old.iserviceoriented.com/blog/post/Indisposable+-+WCF+Gotcha+1.aspx.
Finden Sie auch unter "Was ist der beste workaround für den WCF-client
- block Problem?" und "Indisposable WCF-clients".
Danke. Fixed via Wayback Machine, und noch zwei weitere links.
InformationsquelleAutor John Saunders
Werfen Sie einen Blick auf die proxies Projekt hier.
Wir hatten ein ähnliches problem und diese Technik ist es behoben. Es beinhaltet im wesentlichen die Erben von einer Klasse, die wird automatisch neu erstellen, den Kanal, wenn Sie Störungen.
InformationsquelleAutor Codebrain