Udostępnij za pośrednictwem


Przykład odnajdywania 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. Na kliencie przykład obejmuje sposób tworzenia DiscoveryClient i dostrajania parametrów wyszukiwania w celu uwzględnienia zakresów przez dodanie zakresów 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. Każdy punkt końcowy jest EndpointDiscoveryBehavior skojarzony z nim. To zachowanie służy do dodawania zakresów identyfikatora 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 odnajdywanie można wyłączyć, ustawiając Enabled właściwość 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ć i DiscoveryClient przekazywać element z dwoma FindCriteria 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 ogranicza odpowiedzi DiscoveryClient na co najwyżej 1 punkt końcowy. 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 użyć tego przykładu

  1. W tym przykładzie użyto punktów końcowych HTTP i do uruchomienia tego przykładu należy dodać odpowiednie listy 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 list 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. Stwórz 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ę.