Почему только один UdpDiscoveryEndpoint отвечает, когда зонд обнаружения является одноадресным?
У меня есть набор служб WCF, которые используют System.ServiceModel.Discovery.UdpDiscoveryEndpoint для реализации ws-discovery. Когда я отправляю многоадресный запрос на обнаружение на сервер, все они корректно отвечают с проверочными совпадениями. Тем не менее, когда я отправляю запрос на обнаружение на сервер, только один из них отвечает. Это немного сложно определить, что отвечает, но я думаю, что это первое, что будет создано.
Я знаю, что должен использовать прокси-сервер обнаружения для одноадресного обнаружения, и мы, вероятно, реализуем это в будущем, но я озадачен тем, почему мои службы реагируют по-разному в этих двух случаях.
1 ответ
Ad hoc (многоадресная передача) ищет в вашей подсети всех, кто слушает, как вы видели, но управляемый (одноадресный) запрашивает конечную точку обнаружения по умолчанию для обнаруживаемых служб. В режиме ad hoc вы передаете запрос на обнаружение, и все отвечают, как вы описали, но в управляемом режиме прокси-сервер отправляет запрос на обнаружение одному адресату, и только этот пункт назначения отвечает (обычно прокси-сервер обнаружения).
Одноадресная рассылка предназначена только для того, чтобы прокси-сервер разрешал разрешать обнаруживаемые сервисы, а выполнение этого без использования прокси-сервера обнаружения означает, что вы уже знаете конечную точку службы, поскольку прокси-сервер уже напрямую связывается с этой конечной точкой.