Служба WCF, установленная как служба Windows, запускает событие в сети два раза при использовании обнаружения

Я следил за этой статьей Microsoft по установке службы WCF как службы Windows ( с netTCPbinding).

Ниже приведен код для настройки объявления со стороны сервиса:

protected override void OnStart(string[] args)
{
  if (myServiceHost != null)
  {
    myServiceHost.Close();
  }
  myServiceHost = new ServiceHost(typeof(MonitoringService));

  ServiceDiscoveryBehavior serviceDiscoveryBehavior = new ServiceDiscoveryBehavior();
  serviceDiscoveryBehavior.AnnouncementEndpoints.Add(new UdpAnnouncementEndpoint());

  myServiceHost.Description.Behaviors.Add(serviceDiscoveryBehavior);
  myServiceHost.Description.Endpoints.Add(new UdpDiscoveryEndpoint());

  myServiceHost.Open();
}

Проблема, с которой я столкнулся, заключается в том, что как только служба станет доступной (скажем, после перезапуска), она уведомит клиента о том, что она вернулась, но это уведомление отправляется клиенту два раза, и, следовательно, он пытается выполнить некоторую очистку два раза.

Ниже приводится подробная информация о службе, в которой она работает. (2772 - это PID службы).

Сервис d

Я подозреваю, что эта служба (по какой-то причине) прослушивает "два раза" один и тот же порт (я не знаю, как это возможно), как мы можем видеть в двух строках TCP, статус прослушивает. Это может быть причиной, по которой я думаю, что событие Online запускается на стороне клиента два раза после того, как служба подключается к сети.

Пожалуйста, предоставьте свой вклад. Для установки я выполнил те же шаги, что и в приведенной выше ссылке.

ИЗМЕНИТЬ

Почему эта служба отображается дважды, даже для одного и того же порта?


person OldSchool    schedule 20.12.2017    source источник
comment
Ваша служба WCF прослушивает два разных адреса IPV4 и IPV6. Похоже, что ответ на следующий вопрос о переполнении стека может решить вашу проблему. stackoverflow.com/questions/2028879/ipv4-remote-address -в-wcf   -  person Stuart Smith    schedule 20.12.2017
comment
@StuartSmith, да, это IPV4 и IPV6, но почему он дважды запускает обработчик событий онлайн-сервиса на стороне клиента? Какая связь?   -  person OldSchool    schedule 20.12.2017
comment
@StuartSmith В какой-то момент он должен использовать один 4 или 6.   -  person OldSchool    schedule 20.12.2017