Umgang mit WCF-Dienst neu starten, auf client-Seite

Habe ich ein GUI-client, der läuft gegen eine WCF gehosteten Dienste als Windows-Dienst auf einem server-box. Der WCF-Dienst ausgeführt wird, in PerCall InstanceContextMode, und der client hat eine singleton-Instanz des service-client und ich möchte vermeiden, reinstantiating die singleton-auf jeden Anruf, denn es macht das Leben schwer für viele asynchrone Aufrufe, die ich habe.

Das problem für mich ist, nach der Windows-Dienst neu gestartet wird, jedesmal, wenn der client macht einen Aufruf, es wird ein exception-Meldung wie dieser:

Dieser Kanal kann nicht mehr verwendet werden, um Nachrichten zu senden, wie die Ausgabe-Sitzung automatisch geschlossen wegen einer server-initiierten shutdown. Entweder deaktivieren Sie das automatische schließen durch die Einstellung der DispatchRuntime.AutomaticInputSessionShutdown auf false ein, oder ändern Sie ggf. den shutdown-Protokoll mit dem remote-server.

Was ist der beste Weg, dies zu umgehen? Ich kann try-catch-Klauseln um alle Aufrufe an den service-client und instanziieren Sie die singleton-Instanz auf Kommunikation Ausnahmen aber das wird beinhalten eine Menge boilerplate-code.

Schreibe einen Kommentar