Работа с перезапуском службы WCF на стороне клиента

У меня есть клиент GUI, который работает противWCF службы, размещенные в виде службы Windows на сервере. Служба WCF работает в PerCall InstanceContextMode, и у клиента есть одноэлементный экземпляр клиента службы, и я хочу избежать повторной установки единственного экземпляра при каждом вызове, поскольку это усложняет жизнь для многих асинхронных вызовов, которые у меня есть.

Проблема для меня заключается в том, что после перезапуска службы Windows каждый раз, когда клиент делает вызов, он получает сообщение об исключении, подобное этому:

Этот канал больше нельзя использовать для отправки сообщений, поскольку выходной сеанс был автоматически закрыт из-за инициированного сервером завершения работы. Либо отключите автоматическое закрытие, установив для DispatchRuntime.AutomaticInputSessionShutdown значение false, либо рассмотрите возможность изменения протокола завершения работы с удаленным сервером.

Какой лучший способ обойти это? Я могу поместить предложения try-catch вокруг всех обращений к клиенту службы и повторно создать экземпляр singleton на исключениях связи, но это будет включать много стандартного кода.

Ответы на вопрос(2)

Ваш ответ на вопрос