バッファーされた受信機能

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

このサンプルでは、Windows Workflow Foundation (WF) のバッファーされた受信機能を設定および構成する方法を示します。バッファーされた受信機能を使用すると、ワークフロー作成者は、メッセージが受信される順序を考慮することなくワークフローを作成できます。バッファーされた受信機能では、メッセージがローカルにバッファーされ、ワークフローで受信準備が整ったときにメッセージが配信されます。

使用例

メッセージング アクティビティと共にバッファーされた受信機能を使用した、順番を無視したメッセージ処理。

Ee834509.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\Basic\Services\BufferedReceive

説明

このサンプルでは、WF を使用して Windows Communication Foundation (WCF) サービスが実装されます。このサービスには Receive アクティビティのシーケンスがあります。このワークフローは、ローン承認のための 3 つの通知を受け取る単純なローン承認プロセスをモデル化しています。Windows Communication Foundation (WCF) クライアント アプリケーションは、サービスで想定される順序とは逆の順序で 3 つの関連付けられた通知を送信します。サービスでバッファーされた受信機能が有効になっているので、順番を無視した各メッセージがサービスにバッファーされ、ワークフローで受信準備が整ったときに処理されます。

バッファーされた受信機能では、バインディングによる ReceiveContent のサポートが必要なので、サービスで NetMsmqBinding が使用されます。バインディングのための特別な構成は不要なので、既定の設定が使用されます。

<endpoint address ="net.msmq://localhost/private/LoanService/Service1.xamlx"
                  binding="netMsmqBinding"
                  contract="ILoanService"/>

また、サービスでは、ServiceMetadataBehavior を使用してサービスのメタデータが公開されます。

同様に、NetMsmqBinding を使用してクライアント エンドポイントが構成されます。Visual Studio の [サービス参照の追加] 機能を使用して、クライアント コードと構成が生成されます。App.config ファイルで生成されたクライアント エンドポイントを次の例に示します。

<endpoint address="net.msmq://localhost/private/LoanService/Service1.xamlx"
                binding="netMsmqBinding" bindingConfiguration="NetMsmqBinding_ILoanService"
                contract="ServiceReference1.ILoanService" name="NetMsmqBinding_ILoanService" />

このサンプルでは、次の Windows コンポーネントが有効になっている必要があります。

  1. インターネット インフォメーション サービス (IIS) 6.0

  2. インターネット インフォメーション サービス (IIS) 6.0 と互換性のある管理、IIS メタベースおよび IIS 6 構成との互換性

  3. World Wide Web サービス、アプリケーション開発機能、および ASP.NET

  4. Microsoft メッセージ キュー (MSMQ) サーバー

サンプルをセットアップしてビルドするには

  1. Visual Studio 2010 コマンド プロンプトで、「aspnet_regiis –I」と入力して ASP.NET を登録し、Enter キーを押します。

  2. Visual Studio 2010 を管理者として実行します。

  3. LoanService.sln を開きます。

  4. LoanService プロジェクトの仮想ディレクトリを作成するかどうかを確認するメッセージが表示されたら、[はい] をクリックします。

サービス キューを設定するには

  1. F5 キーを押して LoanClient アプリケーションを実行し、キューを作成して Service1.xamlx で定義されたサービスをアクティブ化します。

  2. コマンド プロンプトから Compmgmt.msc を実行して、[コンピューターの管理] コンソールを開きます。

  3. [コンピューターの管理] コンソールで、[サービスとアプリケーション][メッセージ キュー][専用キュー] の順に展開します。

  4. loanservice/service1.xamlx キューを右クリックし、[プロパティ] をクリックします。

  5. [セキュリティ] タブをクリックし、Everyone グループに [メッセージの受信][メッセージのピーク]、および [メッセージの送信] アクセス許可を追加します。

  6. インターネット インフォメーション サービス (IIS) 6.0 マネージャーを開きます。

  7. [サーバー][サイト][既定の Web サイト][private][LoanService] の順に参照し、[詳細オプション] をクリックします。

  8. [有効なプロトコル]http,net.msmq に変更します。

サンプルを実行するには

  1. https://localhost/private/loanservice/service1.xamlx を参照し、サービスが実行されていることを確認します。

  2. F5 キーを押して LoanClient アプリケーションを実行します。ワークフローが完了したら、メッセージ交換の結果を示す out.txt ファイルが C:\Inbox に保存されます。

クリーンアップするには

  1. コマンド プロンプトから Compmgmt.msc を実行して、[コンピューターの管理] コンソールを開きます。

  2. [サービスとアプリケーション][メッセージ キュー][専用キュー] の順に展開します。

  3. loanservice/service1.xamlx キューを削除します。

  4. C:\Inbox ディレクトリを削除します。

Ee834509.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\Basic\Services\BufferedReceive