Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Im LinqMessageQueryCorrelation-Beispiel wird veranschaulicht, wie inhaltsbasierte Korrelation mithilfe einer benutzerdefinierten MessageQuery Implementierung im Gegensatz zur vom System bereitgestellten XPathMessageQuery durchgeführt werden kann.
Zeigt
Benutzerdefinierte MessageQuery, Inhaltsbasierte Korrelation.
Diskussion
In diesem Beispiel wird gezeigt, wie man die MessageQuery Basisklasse zu Korrelationszwecken erweitert. Mit der benutzerdefinierten Implementierung LinqMessageQuerykönnen Benutzer einen XName bereitstellen, um in der Nachricht mithilfe von XLinq zu suchen. Die von der Abfrage abgerufenen Daten werden verwendet, um den Korrelationsschlüssel zu bilden, um Nachrichten an die entsprechende Workflowinstanz zu verteilen.
So können Sie das Beispiel einrichten, erstellen und ausführen
In diesem Beispiel wird ein Workflowdienst mithilfe von HTTP-Endpunkten verfügbar gemacht. Zum Ausführen dieses Beispiels müssen richtige URL-ACLs hinzugefügt werden (siehe Konfigurieren von HTTP und HTTPS für Details), entweder durch Ausführen von Visual Studio als Administrator oder durch Ausführen des folgenden Befehls an einer Eingabeaufforderung mit erhöhten Rechten, um die entsprechenden ACLs hinzuzufügen. Stellen Sie sicher, dass Ihre Domäne und Ihr Benutzername ersetzt werden.
netsh http add urlacl url=http://+:8000/ user=%DOMAIN%\%UserName%Nachdem die URL-ACLs hinzugefügt wurden, führen Sie die folgenden Schritte aus.
Erstellen Sie die Lösung.
Legen Sie mehrere Startprojekte fest, indem Sie mit der rechten Maustaste auf die Projektmappe klicken und Startprojekte festlegen auswählen. Fügen Sie Dienst und Client (in dieser Reihenfolge) als mehrere Startprojekte hinzu.
Führen Sie die Anwendung aus. Die Clientkonsole zeigt einen Workflow an, der eine Bestellung sendet und die Auftrags-ID erhält und anschließend die Bestellung bestätigt. Im Dienstfenster werden die Anfragen angezeigt, die gerade verarbeitet werden.