Dela via


Åtkomst till OperationContext

Exemplet AccessingOperationContext visar hur meddelandeaktiviteterna (Receive och Send) kan användas med en anpassad omfångsaktivitet för att komma åt Current och bifoga eller hämta ett anpassat meddelandehuvud i ett utgående eller inkommande meddelande.

Demonstrerar

Meddelandeaktiviteter, ISendMessageCallback, IReceiveMessageCallback.

Diskussion

Det här exemplet visar hur du använder utökningspunkter (ISendMessageCallback) IReceiveMessageCallback) i meddelandeaktiviteterna för att få åtkomst Currenttill . Återanropen registreras inom arbetsflödeskörningen som en implementering av IExecutionProperty, vilken plockas upp av meddelandeaktiviteterna vid körning. Alla meddelandeaktiviteter i samma omfång som implementeringen IExecutionProperty påverkas. I det här exemplet används särskilt en anpassad omfångsaktivitet för att framtvinga återanropsbeteendet. ISendMessageCallback Används i klientarbetsflödet för att inkludera arbetsflödets Id som utgående MessageHeader. Det här headern hämtas sedan i tjänsten med hjälp av IReceiveMessageCallback och värdet för headern skrivs ut på konsolen.

Konfigurera, skapa och köra exemplet

  1. Det här exemplet exponerar en arbetsflödestjänst med hjälp av HTTP-slutpunkter. Om du vill köra det här exemplet måste lämpliga URL-ACL:er läggas till (se Konfigurera HTTP och HTTPS för mer information), antingen genom att köra Visual Studio som administratör eller genom att köra följande kommando i en upphöjd prompt för att lägga till lämpliga ACL:er. Se till att din domän och ditt användarnamn ersätts.

    netsh http add urlacl url=http://+:8000/ user=%DOMAIN%\%UserName%
    
  2. När URL-ACL:erna har lagts till använder du följande steg.

    1. Skapa lösningen.

    2. Ange flera startprojekt genom att högerklicka på lösningen och välja Ange startprojekt.

    3. Lägg till tjänst och klient (i den ordningen) som flera startprojekt.

    4. Kör programmet. Klientkonsolen visar ett arbetsflöde som körs två gånger och fönstret Tjänst visar instans-ID för dessa arbetsflöden.