Udostępnij za pośrednictwem


** Przykładowe odkrycie z zakresami

W przykładzie DiscoveryWithScopes pokazano, jak używać zakresów do kategoryzowania możliwych do odnalezienia punktów końcowych, a także jak używać DiscoveryClient ich do przeprowadzania asynchronicznego wyszukiwania punktów końcowych. W usłudze w tym przykładzie pokazano, jak dostosować odnajdywanie dla każdego punktu końcowego przez dodanie zachowania odnajdywania punktu końcowego i użycie go do dodania zakresu do punktu końcowego oraz kontrolowania możliwości odnajdywania punktu końcowego. Po stronie klienta przykład pokazuje, jak klienci mogą tworzyć DiscoveryClient i dostosowywać parametry wyszukiwania, aby uwzględnić zakresy poprzez dodanie ich do elementu FindCriteria. W tym przykładzie pokazano również, jak klienci mogą ograniczać odpowiedzi, dodając kryterium zakończenia.

Funkcje usługi

Ten projekt przedstawia dwa punkty końcowe usługi dodawane do elementu ServiceHost. Z każdym punktem końcowym jest skojarzony EndpointDiscoveryBehavior. Służy to do dodawania zakresów URI dla obu punktów końcowych. Zakresy są używane do rozróżniania każdego z tych punktów końcowych, aby klienci mogli dostroić wyszukiwanie. W przypadku drugiego punktu końcowego widoczność można wyłączyć, ustawiając właściwość Enabled na false. Dzięki temu metadane odnajdywania skojarzone z tym punktem końcowym nie są wysyłane w ramach żadnych komunikatów odnajdywania.

Funkcje klienta

Metoda FindCalculatorServiceAddress() pokazuje, jak używać DiscoveryClient i przekazywać FindCriteria z dwoma ograniczeniami. Zakres jest dodawany do kryteriów, a właściwość jest ustawiona MaxResults na 1. Zakres ogranicza wyniki tylko do usług, które publikują ten sam zakres. Ustawienie MaxResults wartości 1 powoduje, że DiscoveryClient czeka na odpowiedzi z maksymalnie jednego punktu końcowego. Wywołanie Find jest operacją synchroniczną, która blokuje wątek do momentu osiągnięcia limitu czasu lub znalezienia jednego punktu końcowego.

Aby skorzystać z tego przykładu

  1. W tym przykładzie użyto punktów końcowych HTTP, a do uruchomienia przykładu należy dodać odpowiednie ACL adresów URL. Aby uzyskać więcej informacji, zobacz Konfigurowanie protokołu HTTP i HTTPS. Wykonanie następującego polecenia z podwyższonym poziomem uprawnień powinno spowodować dodanie odpowiednich ACL. Możesz zastąpić domenę i nazwę użytkownika następującymi argumentami, jeśli polecenie nie działa w następujący sposób: netsh http add urlacl url=http://+:8000/ user=%DOMAIN%\%UserName%

  2. Skompiluj rozwiązanie.

  3. Uruchom plik wykonywalny usługi z katalogu kompilacji.

  4. Uruchom plik wykonywalny klienta. Należy pamiętać, że klient może zlokalizować usługę.