Образец обнаружения с помощью областей

В образце описывается использование областей для категоризации конечных точек, доступных для обнаружения, а также способы использования DiscoveryClient для выполнения асинхронного поиска конечных точек. В службе этот образец показывает, как настраивать обнаружение всех конечных точек, добавляя поведение обнаружения конечных точек и используя его для добавления области к конечной точке, а также управляя возможностью обнаружения конечных точек. В клиенте образец описывает способы создания клиентами DiscoveryClient и настройки параметров поиска для включения областей в FindCriteria. В этом образце также описываются способы ограничений клиентами ответов путем добавления критериев завершения.

Функции службы

В этом проекте показаны две конечные точки службы, добавляемые к ServiceHost. Во всех конечных точках имеются EndpointDiscoveryBehavior, связанные с ними. Это поведение используется для добавления областей URI к обеим конечным точкам. Области используются для различения конечных точек, что обеспечивает возможность настройки поиска для клиентов. Для второй конечной точки возможность обнаружения можно выключить при задании для свойства Enabled значения false. При этом метаданные обнаружения, связанные с этой конечной точкой, не отправляются как часть всех сообщений обнаружения.

Функции клиентов

Метод FindCalculatorServiceAddress() используется для демонстрации способов использования DiscoveryClient и передачи FindCriteria с двумя ограничениями. Область добавляется к критерию, а для свойства MaxResults задается значение 1. Область ограничивает результаты, обеспечивая их доступность только для служб, публикующих одну область. При задании для MaxResults значения 1 ограничивает ответы, которые ожидаются DiscoveryClient, самое большее, до 1 конечной точки. Вызов Find представляет собой синхронную операцию, блокирующую поток, пока не истечет время ожидания или нахождения одной конечной точки.

Использование этого образца

  1. В этом образце используются конечные точки HTTP, и для работы этого образца необходимо добавить соответствующие списки управления доступом по URL-адресу. Дополнительные сведения см. в Настройка HTTP и HTTPS. Нужные списки управления доступом будут добавлены после выполнения следующей команды с повышенными привилегиями. Если команда не работает, следует указать домен и имя пользователя в следующих аргументах: netsh http add urlacl url=http://+:8000/ user=%DOMAIN%\%UserName%.

  2. Постройте решение.

  3. Выполните исполняемый файл службы из каталога сборки.

  4. Выполните исполняемый файл клиента. Учтите, что клиент может определить расположение службы.

Dd483341.Important(ru-ru,VS.100).gif Примечание
Образцы уже могут быть установлены на компьютере. Перед продолжением проверьте следующий каталог (по умолчанию).

<диск_установки>:\WF_WCF_Samples

Если этот каталог не существует, перейдите на страницу Образцы Windows Communication Foundation (WCF) и Windows Workflow Foundation (WF) для .NET Framework 4, чтобы загрузить все образцы Windows Communication Foundation (WCF) и WF. Этот образец расположен в следующем каталоге.

<диск_установки>:\WF_WCF_Samples\WCF\Basic\Discovery\DiscoveryWithScopes