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

Jim*_*Jim 8 wcf .net-4.0 service-discovery discovery

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

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

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

那么可发现的服务如何刷新自己(重新宣布)到托管发现服务?

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

另一种用例是:

  1. 现有的可发现服务正在运行.
  2. 新的托管发现服务将联机.

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

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

Jim*_*Jim 5

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

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

client.AnnounceOnline(endpointDiscoveryMetadata);
Run Code Online (Sandbox Code Playgroud)