使用WCF ServiceDiscoveryBehavior公告端点时,“定期重新发布”服务?

时间:2011-05-31 12:58:41

标签: wcf .net-4.0 discovery service-discovery

我有一个托管有已知URI的托管发现服务。我有一个可发现的服务,当它启动时,它使用添加到服务的ServiceDiscoveryBehavior的AnnouncementEndpoint宣布自己。

我想解决的具体用例如下:

  1. 托管发现服务启动。
  2. 可发现的服务启动并向Managed Discovery服务宣布自己。
  3. 重新启动Managed Discovery服务(出于各种可能的原因)。
  4. 可发现服务如何刷新自身(重新宣布)到托管发现服务?

    我知道托管发现服务可以保留端点并在启动时恢复它们但我希望一切都是动态的并且自我修复,这样就不会有过时的端点信息。

    另一个用例是:

    1. 现有的可发现服务正在运行。
    2. 新的托管发现服务已联机。
    3. 我们如何强制或调用相同的公告服务合同调用新的托管发现服务?

      我希望这是关于我想要完成的事情的足够信息。

1 个答案:

答案 0 :(得分:5)

我自己找到了答案。在您需要控制ServiceDiscoveryBehavior之外的公告的场景中,您将使用AnnouncementClient类。

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

client.AnnounceOnline(endpointDiscoveryMetadata);