1
私はICommunicationObject.Stateを使用してチャネルの状態を確認しています。 問題が開いた状態に変更されると、障害が発生したときに再び変更されないという問題があります。私は、接続をrecieveig後もAnnouncementClientをやり続けるICommunicationObject.Stateは更新されません
私は ...代わりに状態を使用しての私のコードのサンプルに 感謝
AnnouncementClient _client;
void func1()
{
try
{
Monitor.Enter(_lock);
if (_isDiscoveryProxyConnected)
{
if (_client.InnerChannel.State == CommunicationState.Faulted)
{
_isDiscoveryProxyConnected = false;
}
}
else
{
_client = new AnnouncementClient(new AnnouncementEndpoint(binding, announcementEndPoint));
foreach (var endpointDiscoveryMetadata in _endpoints)
{
_client.AnnounceOnline(endpointDiscoveryMetadata);
_discoveryProxyMetadata = endpointDiscoveryMetadata;
}
_isDiscoveryProxyConnected = true;
}
}
}