Образец обнаружения с помощью областей
В примере DiscoveryWithScopes показано, как использовать область для классификации обнаруженных конечных точек, а также как использовать DiscoveryClient для асинхронного поиска конечных точек. В этом примере показано, как настроить обнаружение для каждой конечной точки, добавив поведение обнаружения конечных точек и используя его для добавления область в конечную точку, а также управления возможностью обнаружения конечной точки. В клиенте образец описывает способы создания клиентами DiscoveryClient и настройки параметров поиска для включения областей в FindCriteria. В этом образце также описываются способы ограничений клиентами ответов путем добавления критериев завершения.
Особенности служб
В этом проекте показаны две конечные точки службы, добавляемые к ServiceHost. Во всех конечных точках имеются EndpointDiscoveryBehavior, связанные с ними. Это поведение используется для добавления областей URI к обеим конечным точкам. Области используются для различения конечных точек, что обеспечивает возможность настройки поиска для клиентов. Для второй конечной точки возможность обнаружения можно выключить при задании для свойства Enabled значения false
. При этом метаданные обнаружения, связанные с этой конечной точкой, не отправляются как часть всех сообщений обнаружения.
Функции клиентов
Метод FindCalculatorServiceAddress()
используется для демонстрации способов использования DiscoveryClient и передачи FindCriteria с двумя ограничениями. Область добавляется к критерию, а для свойства MaxResults задается значение 1. Область ограничивает результаты, обеспечивая их доступность только для служб, публикующих одну область. При задании для MaxResults значения 1 ограничивает ответы, которые ожидаются DiscoveryClient, самое большее, до 1 конечной точки. Вызов Find представляет собой синхронную операцию, блокирующую поток, пока не истечет время ожидания или нахождения одной конечной точки.
Использование этого образца
В этом образце используются конечные точки HTTP, и для работы этого образца необходимо добавить соответствующие списки управления доступом по URL-адресу. Дополнительные сведения см. в разделе "Настройка HTTP и HTTPS". Нужные списки управления доступом будут добавлены после выполнения следующей команды с повышенными привилегиями. Если команда не работает, следует указать домен и имя пользователя в следующих аргументах:
netsh http add urlacl url=http://+:8000/ user=%DOMAIN%\%UserName%
.Постройте решение.
Выполните исполняемый файл службы из каталога сборки.
Выполните исполняемый файл клиента. Учтите, что клиент может определить расположение службы.