OperationContext へのアクセス

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

このサンプルでは、メッセージング アクティビティ (Receive および Send) を、カスタムのスコープ アクティビティと共に使用して Current にアクセスし、送信メッセージまたは受信メッセージ内のカスタム メッセージ ヘッダーを追加または取得する方法を示します。

使用例

メッセージング アクティビティ、ISendMessageCallbackIReceiveMessageCallback

説明

このサンプルでは、メッセージング アクティビティで拡張ポイント (ISendMessageCallback および IReceiveMessageCallback) を使用して Current にアクセスする方法を示します。これらのコールバックは、実行時にメッセージング アクティビティによって取得される IExecutionProperty の実装としてワークフロー ランタイム内に登録されます。その IExecutionProperty 実装と同じスコープ内のメッセージング アクティビティはすべて影響を受けます。具体的には、このサンプルでは、カスタムのスコープ アクティビティを使用してコールバック動作を適用します。ISendMessageCallback は、ワークフローの Id を送信 MessageHeader として含めるためにクライアント ワークフローで使用されます。このヘッダーはサービスで IReceiveMessageCallback を使用して取得され、ヘッダーの値がコンソールに出力されます。

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

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

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

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

    2. ソリューションを右クリックし、[スタートアップ プロジェクトの設定] をクリックして、複数のスタートアップ プロジェクトを設定します。

    3. 複数のスタートアップ プロジェクトとして Service および Client を (この順序で) 追加します。

    4. アプリケーションを実行します。クライアント コンソールに実行中のワークフローが 2 回示され、[サービス] ウィンドウにこれらのワークフローのインスタンス ID が示されます。

Ee834517.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\Accessing Operation Context