У меня есть дуплексная служба WCF с включенными сеансами, и я пытаюсь избежать исключений состояния ошибки на клиенте.
Я нашел несколько обсуждений вокруг этой темы, но все, что я нашел, предлагают воссоздать клиентпрокси или канал.Не фокусируется на дуплексных службах с включенным сеансом.
Моя проблема с этим подходом состоит в том, что на сервере существует один сеанс на каждого клиента, и у каждого клиента есть только один экземпляр прокси службы (прокси-сервер синглтона).Поскольку это дуплекс, на стороне клиента несколько объектов прослушивают события в этом экземпляре службы (сообщения, отправленные с сервера клиенту).Если служба находится в неисправном состоянии, она больше не может быть использована.Если я отбрасываю этот экземпляр и создаю новый, мне трудно снова подключить все обработчики событий к этому новому экземпляру.
Должен ли я обернуть службу и каждый раз, когда объект подключается длясобытие, сохранить обработчик в списке (чтобы я мог перехватить его при повторном создании службы)?Кажется, что утерян код, легко утечка памяти ...
Есть ли способ просто перезапустить клиентский прокси / канал, не отбрасывая весь экземпляр прокси?(Я использую прокси сгенерированный VS)
Есть идеи?
Спасибо, MAB