ICommunicationObject.State не обновляется - PullRequest
1 голос
/ 25 марта 2012

Я использую 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;

           }
        }
}

1 Ответ

0 голосов
/ 26 марта 2012

Вместо использования состояния ... Я продолжаю делать AnnouncementClient и после получения соединения ... Я просто изменяю таймер, чтобы он делал AnnouncementClient с большими интервалами ... если не получится, я снова уменьшу интервалы ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...