次の方法で共有


LINQ メッセージ クエリの関連付け

LinqMessageQueryCorrelation サンプルでは、システム提供のMessageQueryではなく、カスタムのXPathMessageQuery実装を使用してコンテンツ ベースの相関関係を行う方法を示します。

対象

カスタム MessageQuery、コンテンツ ベースの相関関係。

議論

このサンプルでは、関連付けのために MessageQuery 基底クラスから拡張する方法を示します。 カスタム実装 LinqMessageQueryを使用すると、ユーザーは XLinq を使用してメッセージ内で検索する XName を提供できます。 クエリによって取得されたデータは、適切なワークフロー インスタンスにメッセージをディスパッチするための関連付けキーを形成するために使用されます。

サンプルを設定、ビルド、実行するには

  1. このサンプルでは、HTTP エンドポイントを使用してワークフロー サービスを公開します。 このサンプルを実行するには、Visual Studio を管理者として実行するか、管理者特権で次のコマンドを実行して適切な ACL を追加することで、適切な URL ACL を追加する必要があります (詳細については 、HTTP と HTTPS の構成 を参照してください)。 ドメインとユーザー名が置き換えられることを確認します。

    netsh http add urlacl url=http://+:8000/ user=%DOMAIN%\%UserName%
    
  2. URL ACL が追加されたら、次の手順を使用します。

    1. ソリューションをビルドします。

    2. ソリューションを右クリックし、[スタートアップ プロジェクトの設定] を選択して、複数の スタートアップ プロジェクトを設定しますサービスクライアントを (その順序で) 複数のスタートアップ プロジェクトとして追加します。

    3. アプリケーションを実行します。 クライアント コンソールには、注文を送信し、発注書 ID を受け取った後、注文を確認するワークフローが表示されます。 [サービス] ウィンドウに、処理中の要求が表示されます。