Correlatie van LINQ-berichtquery

Het LinqMessageQueryCorrelation-voorbeeld laat zien hoe u een correlatie op basis van inhoud uitvoert met behulp van een aangepaste MessageQuery implementatie in plaats van de door het systeem geleverde XPathMessageQuery.

Demonstreert

Aangepaste MessageQuerycorrelatie op basis van inhoud.

Discussie

In dit voorbeeld ziet u hoe u zich kunt uitbreiden van de MessageQuery basisklasse voor correlatiedoeleinden. Met de aangepaste implementatie LinqMessageQuerykunnen gebruikers een XName in het bericht vinden met behulp van XLinq. De gegevens die door de query worden opgehaald, worden gebruikt om de correlatiesleutel te vormen voor het verzenden van berichten naar het juiste werkstroomexemplaren.

Het voorbeeld instellen, compileren 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. Voeg service en client (in die volgorde) toe als meerdere opstartprojecten.

    3. Voer de toepassing uit. De clientconsole toont een werkstroom voor het verzenden van een order en het ontvangen van de inkooporder-id en vervolgens het bevestigen van de bestelling. In het venster Service worden de aanvragen weergegeven die worden verwerkt.