Дуплексные каналы службы WCF постоянно активны (WSDualHttpBinding)

Архитектура:

  1. консольное приложение, содержащее дуплексную службу wcf;
  2. потребители приложений для Windows; каждое приложение подписывается на дуплекс, поэтому у нас есть список подписчиков, и служба должна отправлять уведомления некоторым из них в случае возникновения каких-либо событий;

Эта проблема:

  1. как поддерживать постоянную связь, чтобы служба могла отправлять уведомления клиентам?

Я обнаружил, что есть 2 канала для этой привязки. Мне нужно, чтобы постоянно был открыт канал из сервиса (для обратных вызовов).

Спасибо;

2 ответа

Решение

Пока клиент подключен к услуге, канал обратного вызова будет активен. Как только клиент отключается (или канал выходит из строя), канал обратного вызова закрывается.

У меня была та же проблема, что и у вас, для ее решения необходимо реализовать метод поддержания активности. Пустой вызов вашей службы глупо иметь службу WCF 24/7, потому что на самом деле это не лучший архитектурный способ WCF, но иногда мы знаем, что нам нужно, не всегда лучшая вещь.

Так что, да, просто выполняйте вызов службы WCF каждые 5 минут и, делая это, вы поддерживаете соединение. Может быть, у вас могут быть и другие проблемы, в моем случае у меня не так много подписчиков службы WCF, так что это решение было хорошо.

Другие вопросы по тегам