Radzenie sobie z restartem usługi WCF po stronie klienta

Mam klienta GUI, który działa na aWCF usługi hostowane jako usługa Windows na serwerze. Usługa WCF działa w PerCall InstanceContextMode, a klient ma pojedynczą instancję klienta usługi i chcę uniknąć ponownej instalacji singletonu przy każdym wywołaniu, ponieważ utrudnia to życie wielu asynchronicznym połączeniom, które mam.

Problemem dla mnie jest to, że po ponownym uruchomieniu usługi Windows za każdym razem, gdy klient nawiązuje połączenie, otrzymuje komunikat o wyjątku w następujący sposób:

Kanału tego nie można już używać do wysyłania wiadomości, ponieważ sesja wyjściowa została automatycznie zamknięta z powodu wyłączenia inicjowanego przez serwer. Wyłącz automatyczne zamykanie, ustawiając DispatchRuntime.AutomaticInputSessionShutdown na false lub rozważ modyfikację protokołu zamykania przy użyciu zdalnego serwera.

Jaki jest najlepszy sposób obejścia tego problemu? Mogę umieścić klauzule try-catch wokół wszystkich wywołań do klienta usługi i ponownie zainicjować instancję singleton na wyjątkach komunikacyjnych, ale będzie to wymagało wielu standardowych szablonów.

questionAnswers(2)

yourAnswerToTheQuestion