8

既知のURIでホストされているManagedDiscoveryServiceがあります。検出可能なサービスがあり、開始時に、サービスのServiceDiscoveryBehaviorに追加されたAnnouncementEndpointを使用して自分自身をアナウンスします。

私が解決したい特定のユースケースは次のとおりです。

  1. マネージドディスカバリーサービスが開始されます。
  2. 検出可能なサービスが開始され、ManagedDiscoveryサービスに通知されます。
  3. Managed Discoveryサービスが再起動されます(さまざまな理由で)。

それでは、検出可能なサービスはどのようにしてそれ自体をマネージドディスカバリーサービスに更新(再アナウンス)しますか?

Managed Discoveryサービスはエンドポイントを永続化し、起動時に復元できることは知っていますが、エンドポイント情報が古くなる可能性がないように、すべてを動的かつ自己修復する必要があります。

別のユースケースは次のとおりです。

  1. 既存の検出可能なサービスが実行されています。
  2. 新しいマネージドディスカバリーサービスがオンラインになりました。

新しいManagedDiscoveryサービスに対して同じアナウンスサービスコントラクトコールを強制または呼び出すにはどうすればよいですか?

これが私が達成したいことについての十分な情報であることを願っています。

4

1 に答える 1

5

私は自分で答えを見つけました。ServiceDiscoveryBehaviorの外部でアナウンスを制御する必要があるシナリオでは、AnnouncementClientクラスを使用します。

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

client.AnnounceOnline(endpointDiscoveryMetadata);
于 2011-06-01T21:09:24.453 に答える