Detectie met bereikvoorbeeld
Het DiscoveryWithScopes-voorbeeld laat zien hoe u bereiken gebruikt om detecteerbare eindpunten te categoriseren en hoe u DiscoveryClient een asynchrone zoekopdracht naar eindpunten uitvoert. In deze service ziet u in dit voorbeeld hoe u detectie voor elk eindpunt kunt aanpassen door een eindpuntdetectiegedrag toe te voegen en dit te gebruiken om een bereik toe te voegen aan het eindpunt en de detectie van het eindpunt te beheren. Op de client wordt in het voorbeeld uitgelegd hoe clients een DiscoveryClient zoekparameters kunnen maken en verfijnen om bereiken op te nemen door bereiken toe te voegen aan de FindCriteria. In dit voorbeeld ziet u ook hoe clients antwoorden kunnen beperken door een beëindigingscriterium toe te voegen.
Service-eigenschappen
In dit project ziet u twee service-eindpunten die worden toegevoegd aan een ServiceHost. Aan elk eindpunt is een EndpointDiscoveryBehavior gekoppeld. Dit gedrag wordt gebruikt om URI-bereiken toe te voegen voor beide eindpunten. Bereiken worden gebruikt om elk van deze eindpunten te onderscheiden, zodat de clients de zoekopdracht kunnen verfijnen. Voor het tweede eindpunt kan de detectie worden uitgeschakeld door de Enabled eigenschap in te stellen op false
. Dit zorgt ervoor dat de detectiemetagegevens die aan dit eindpunt zijn gekoppeld, niet worden verzonden als onderdeel van detectieberichten.
Clientfuncties
De FindCalculatorServiceAddress()
methode laat zien hoe u een DiscoveryClient en een met twee beperkingen kunt doorgeven FindCriteria . Er wordt een bereik toegevoegd aan de criteria en de MaxResults eigenschap is ingesteld op 1. Het bereik beperkt de resultaten tot alleen de services die hetzelfde bereik publiceren. Als u instelt MaxResults op 1, worden de antwoorden beperkt tot maximaal DiscoveryClient 1 eindpunt. De Find aanroep is een synchrone bewerking waarmee de thread wordt geblokkeerd totdat een time-out is bereikt of één eindpunt wordt gevonden.
Dit voorbeeld gebruiken
Dit voorbeeld maakt gebruik van HTTP-eindpunten en om dit voorbeeld uit te voeren, moeten de juiste URL-ACL's worden toegevoegd. Zie HTTP en HTTPS configureren voor meer informatie. Als u de volgende opdracht uitvoert met een verhoogde bevoegdheid, moet u de juiste ACL's toevoegen. U kunt uw domein en gebruikersnaam vervangen door de volgende argumenten als de opdracht niet werkt zoals is:
netsh http add urlacl url=http://+:8000/ user=%DOMAIN%\%UserName%
Bouw de oplossing.
Voer het uitvoerbare bestand van de service uit vanuit de buildmap.
Voer het uitvoerbare clientbestand uit. Houd er rekening mee dat de client de service kan vinden.