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

このトピックの内容は、Windows Workflow Foundation 4 に該当します。

このサンプルでは、システム標準の XPathMessageQuery ではなく、カスタムの MessageQuery 実装を使用して、コンテンツ ベースの関連付けを実行する方法を示します。

使用例

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

説明

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

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

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

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

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

    2. ソリューションを右クリックし、[スタートアップ プロジェクトの設定] をクリックして、複数のスタートアップ プロジェクトを設定します。複数のスタートアップ プロジェクトとして Service および Client を (この順序で) 追加します。

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

Ee834524.Important(ja-jp,VS.100).gif 注 :
サンプルは、既にコンピューターにインストールされている場合があります。続行する前に、次の (既定の) ディレクトリを確認してください。

<InstallDrive>:\WF_WCF_Samples

このディレクトリが存在しない場合は、「.NET Framework 4 向けの Windows Communication Foundation (WCF) および Windows Workflow Foundation (WF) のサンプル」にアクセスして、Windows Communication Foundation (WCF) および WF のサンプルをすべてダウンロードしてください。このサンプルは、次のディレクトリに格納されます。

<InstallDrive>:\WF_WCF_Samples\WF\Scenario\Services\LinqMessageQueryCorrelation