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