Delen via


Toegang krijgen tot OperationContext

Het AccessingOperationContext-voorbeeld demonstreert hoe de berichtenactiviteiten (Receive en Send) kunnen worden gebruikt met een aangepaste scope-activiteit om toegang te krijgen tot Current en om een aangepaste berichtkop toe te voegen of op te halen binnen een uitgaand of binnenkomend bericht.

Demonstreert

Berichtenactiviteiten, ISendMessageCallback, IReceiveMessageCallback.

Discussie

In dit voorbeeld ziet u hoe u uitbreidbaarheidspunten (ISendMessageCallback) IReceiveMessageCallback gebruikt in de berichtenactiviteiten om toegang te krijgen tot Current. De callbacks worden geregistreerd in de werkstroomruntime als een implementatie daarvan IExecutionProperty die wordt opgehaald door de berichtenactiviteiten bij uitvoering. Elke berichtenactiviteit in hetzelfde bereik als die IExecutionProperty implementatie wordt beïnvloed. In dit voorbeeld wordt met name een aangepaste scope-activiteit gebruikt om het callbackgedrag te garanderen. De ISendMessageCallback wordt in de klantworkflow gebruikt om de Id op te nemen als een uitgaande MessageHeader. Deze header wordt vervolgens in de service opgehaald door middel van IReceiveMessageCallback en de waarde van de header wordt op de console weergegeven.

Het voorbeeld instellen, bouwen en uitvoeren

  1. In dit voorbeeld wordt een werkstroomservice beschikbaar gemaakt met behulp van HTTP-eindpunten. Als u dit voorbeeld wilt uitvoeren, moeten de juiste URL-ACL's worden toegevoegd (zie HTTP en HTTPS configureren voor meer informatie), door Visual Studio als administrator uit te voeren of door de volgende opdracht uit te voeren bij een prompt met verhoogde bevoegdheid om de juiste ACL's toe te voegen. Zorg ervoor dat uw domein en gebruikersnaam worden vervangen.

    netsh http add urlacl url=http://+:8000/ user=%DOMAIN%\%UserName%
    
  2. Zodra de URL-ACL's zijn toegevoegd, voert u de volgende stappen uit.

    1. Bouw de oplossing.

    2. Stel meerdere opstartprojecten in door met de rechtermuisknop op de oplossing te klikken en Opstartprojecten instellen te selecteren.

    3. Voeg service en client (in die volgorde) toe als meerdere opstartprojecten.

    4. Voer de toepassing uit. In de clientconsole wordt een werkstroom weergegeven die tweemaal wordt uitgevoerd en in het venster Service wordt de exemplaar-id van deze werkstromen weergegeven.