Identifiering med omfångsexempel
Exemplet DiscoveryWithScopes visar hur du använder omfång för att kategorisera identifieringsbara slutpunkter samt hur du använder DiscoveryClient för att utföra en asynkron sökning efter slutpunkter. I tjänsten visar det här exemplet hur du anpassar identifieringen för varje slutpunkt genom att lägga till ett beteende för slutpunktsidentifiering och använda det för att lägga till ett omfång i slutpunkten samt kontrollera slutpunktens identifiering. På klienten går exemplet igenom hur klienter kan skapa en DiscoveryClient och finjustera sökparametrar för att inkludera omfång genom att lägga till omfång i FindCriteria. Det här exemplet visar också hur klienter kan begränsa svar genom att lägga till ett avslutningsvillkor.
Tjänstfunktioner
Det här projektet visar två tjänstslutpunkter som läggs till i en ServiceHost. Varje slutpunkt har en EndpointDiscoveryBehavior associerad med den. Det här beteendet används för att lägga till URI-omfång för båda slutpunkterna. Omfång används för att särskilja var och en av dessa slutpunkter så att klienterna kan finjustera sökningen. För den andra slutpunkten kan identifieringen inaktiveras genom att egenskapen anges Enabled till false
. Detta säkerställer att identifieringsmetadata som är associerade med den här slutpunkten inte skickas som en del av några identifieringsmeddelanden.
Klientfunktioner
Metoden FindCalculatorServiceAddress()
visar hur du använder en DiscoveryClient och skickar in en FindCriteria med två begränsningar. Ett omfång läggs till i villkoret och egenskapen MaxResults är inställd på 1. Omfånget begränsar resultatet till endast de tjänster som publicerar samma omfång. Inställningen MaxResults till 1 begränsar svar som DiscoveryClient väntar på högst 1 slutpunkt. Anropet Find är en synkron åtgärd som blockerar tråden tills en tidsgräns nås eller en slutpunkt hittas.
Så här använder du det här exemplet
Det här exemplet använder HTTP-slutpunkter och för att köra det här exemplet måste rätt URL-ACL:er läggas till. Mer information finns i Konfigurera HTTP och HTTPS. Om du kör följande kommando med en förhöjd behörighet bör du lägga till lämpliga ACL:er. Du kanske vill ersätta domänen och användarnamnet med följande argument om kommandot inte fungerar som det är:
netsh http add urlacl url=http://+:8000/ user=%DOMAIN%\%UserName%
Skapa lösningen.
Kör den körbara tjänsten från byggkatalogen.
Kör den körbara klienten. Observera att klienten kan hitta tjänsten.