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

问题描述 投票:0回答:1

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

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

  1. 托管发现服务启动。
  2. 可发现服务启动并向托管发现服务宣告自身。
  3. 托管发现服务已重新启动(出于任何各种可能的原因)。

可发现服务如何将自身刷新(重新通告)到托管发现服务?

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

另一个用例是:

  1. 现有的可发现服务正在运行。
  2. 新的托管发现服务上线。

我们如何强制或调用对新的托管发现服务的相同公告服务合同调用?

我希望这些信息足以说明我想要实现的目标。

wcf .net-4.0 service-discovery wcf-discovery
1个回答
5
投票

我自己找到了答案。在需要控制 ServiceDiscoveryBehavior 之外的公告的情况下,您可以使用 AnnouncementClient 类。

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

client.AnnounceOnline(endpointDiscoveryMetadata);
© www.soinside.com 2019 - 2024. All rights reserved.