Периодически переоценивать службу при использовании конечной точки объявления WCF ServiceDiscoveryBehavior? - PullRequest
8 голосов
/ 31 мая 2011

У меня есть служба управляемого обнаружения, размещенная с известным URI.У меня есть обнаруживаемая служба, которая, когда она запускается, объявляет о себе, используя AnnouncementEndpoint, добавленную к ServiceDiscoveryBehavior службы.

Конкретный вариант использования, который я хотел бы решить, следующий:

  1. Запускается служба управляемого обнаружения.
  2. Запускаемая служба запускается и объявляет себя службе управляемого обнаружения.
  3. Служба управляемого обнаружения перезапускается (по различным причинам).

Как тогда обнаруживаемая служба обновляется (повторно объявляет) для службы Managed Discovery?

Я знаю, что служба Managed Discovery может сохранять конечные точки и восстанавливать их при запуске, но я хочу, чтобы все былодинамическое и самовосстанавливающееся, так что нет никакой возможности получить устаревшую информацию о конечных точках.

Альтернативный вариант использования:

  1. Работает существующая обнаруживаемая служба.
  2. Новая служба управляемого обнаружения подключена к сети.

Как заставить или вызвать один и тот же вызов по контракту на службу объявлений для новой службы управляемого обнаружения?

Надеюсь, этого достаточно для того, чего я хочу достичь.

1 Ответ

5 голосов
/ 02 июня 2011

Я нашел ответ сам.В сценарии, где вам необходимо управлять объявлениями вне ServiceDiscoveryBehavior, вы должны использовать класс AnnouncementClient .

AnnouncementClient client = new AnnouncementClient(announcementEndpoint);
var endpointDiscoveryMetadata = EndpointDiscoveryMetadata.FromServiceEndpoint(netTcpEndpoint);

client.AnnounceOnline(endpointDiscoveryMetadata);
...