Udostępnij przez


Korelacja zapytania komunikatów LINQ

Przykład LinqMessageQueryCorrelation pokazuje, jak przeprowadzić korelację opartą na zawartości przy użyciu implementacji niestandardowej MessageQuery, zamiast rozwiązania dostarczanego przez system XPathMessageQuery.

Demonstruje

Niestandardowa MessageQuerykorelacja oparta na zawartości.

Dyskusja

W tym przykładzie pokazano, jak rozszerzyć klasę bazową MessageQuery na potrzeby korelacji. Implementacja niestandardowa LinqMessageQuery umożliwia użytkownikom podanie nazwy XName do znalezienia w wiadomości przy użyciu języka XLinq. Dane pobierane przez zapytanie służą do tworzenia klucza korelacji w celu wysyłania komunikatów do odpowiedniego wystąpienia przepływu pracy.

Aby skonfigurować, skompilować i uruchomić przykładowy program

  1. Ten przykład uwidacznia usługę przepływu pracy przy użyciu punktów końcowych HTTP. Aby uruchomić ten przykład, należy dodać odpowiednie listy ACL adresów URL (zobacz Konfigurowanie protokołu HTTP i HTTPS , aby uzyskać szczegółowe informacje), uruchamiając program Visual Studio jako administrator lub wykonując następujące polecenie w wierszu polecenia z podwyższonym poziomem uprawnień, aby dodać odpowiednie listy ACL. Upewnij się, że domena i nazwa użytkownika zostały zastąpione.

    netsh http add urlacl url=http://+:8000/ user=%DOMAIN%\%UserName%
    
  2. Po dodaniu listy ACL dla adresów URL wykonaj następujące kroki.

    1. Skompiluj rozwiązanie.

    2. Skonfiguruj wiele projektów startowych, klikając rozwiązanie prawym przyciskiem myszy i wybierając polecenie Ustaw projekty startowe. Dodaj Serwis i Klient (w tej kolejności) jako wielokrotne projekty startowe.

    3. Uruchom aplikację. Konsola klienta wyświetla przepływ pracy, który wysyła zamówienie, odbiera identyfikator zamówienia zakupu, a następnie potwierdza zamówienie. W oknie Usługa zostaną wyświetlone przetwarzane żądania.