次の方法で共有


メッセージング アクティビティを使用してワークフロー サービスを作成する方法

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

このトピックでは、メッセージング アクティビティを使用して単純なワークフロー サービスを作成する方法について説明します。ここでは、ワークフロー サービスを作成する機構と、メッセージング アクティビティだけで構成されるサービスに重点を置きます。実際のサービスでは、ワークフローに他の多くのアクティビティが含まれます。このサービスは、文字列を取得して、それを呼び出し元に返す、Echo という 1 つの操作を実装します。このトピックは、一連の 2 つのトピックの最初のものです。次のトピック「ワークフロー アプリケーションからサービスにアクセスする方法」では、このトピックで作成したサービスを呼び出すワークフロー アプリケーションの作成方法について説明します。

ワークフロー サービス プロジェクトを作成するには

  1. Visual Studio 2010 を起動します。

  2. [ファイル] メニューで [新規作成][プロジェクト] の順に選択して、[新しいプロジェクト] ダイアログ ボックスを表示します。インストールされているテンプレートの一覧で [ワークフロー] を選択し、プロジェクトの種類の一覧で [WCF ワークフロー サービス アプリケーション] を選択します。次の図に示すように、プロジェクトに MyWFService という名前を付け、既定の場所を使用します。

    新しいプロジェクトのダイアログ

    [OK] をクリックして [新しいプロジェクト] ダイアログ ボックスを閉じます。

  3. プロジェクトが作成されると、次の図に示すように、Service1.xamlx ファイルがデザイナーで開かれます。

    デザイナーに表示されている既定のワークフロー

    "シーケンシャル サービス" というラベルの付いたアクティビティを右クリックし、[削除] をクリックします。サービスは、次の手順で再作成します。

ワークフロー サービスを実装するには

  1. 画面左側の [ツールボックス] タブを選択してツールボックスを表示し、プッシュピンをクリックしてウィンドウを開いたままにします。次の図に示すように、ツールボックスの [メッセージング] セクションを展開して、メッセージング アクティビティおよびメッセージング アクティビティ テンプレートを表示します。

    メッセージング タブが展開されているツールボックス

  2. [ReceiveAndSendReply] テンプレートをワークフロー デザイナーにドラッグ アンド ドロップします。これにより、Sequence アクティビティが作成されます。次の図に示すように、Receive アクティビティの後に SendReply アクティビティがあります。

    デザイナーでの ReceiveAndSendReply テンプレート

    SendReply アクティビティの Request プロパティは Receive に設定されています。これは、SendReply アクティビティが応答する Receive アクティビティの名前です。

  3. Receive アクティビティの [OperationName] というラベルの付いたボックスに「Echo」と入力します。これにより、サービスが実装する操作の名前が定義されます。

    操作名を指定

  4. Receive アクティビティを選択した状態で、プロパティ ウィンドウがまだ開いていない場合は、[表示] メニューの [プロパティ ウィンドウ] をクリックして開きます。[プロパティ ウィンドウ] で、[CanCreateInstance] が表示されるまで下にスクロールし、次の図に示すように、チェックボックスをオンにします。

    CanCreateInstance プロパティ

  5. Sequence アクティビティを選択し、デザイナーの左下隅にある [変数] をクリックします。これにより、変数エディターが開かれます。[変数の作成] リンクをクリックして、操作に送られる文字列を格納する変数を追加します。変数に msg という名前を付け、次の図に示すように、その [変数] の種類を文字列に設定します。

    変数の追加

    [変数] をもう一度クリックして、変数エディターを閉じます。

  6. Receive アクティビティの [コンテンツ] ボックスの [定義..] リンクをクリックして、[コンテンツ定義] ダイアログ ボックスを表示します。[パラメーター] オプション ボタンを選択し、[新しいパラメーターの追加] リンクをクリックし、[名前] ボックスに**「inMsg」と入力し、[型]** ボックスの [文字列] を選択し、[割り当て先] ボックスに「msg」と入力します。

    パラメーター コンテンツの追加

    これにより、Receive アクティビティが文字列パラメーターを受け取り、そのデータが msg 変数にバインドされるように指定されます。[OK] をクリックして [コンテンツ定義] ダイアログ ボックスを閉じます。

  7. SendReply アクティビティの [コンテンツ] ボックスの [定義...] リンクをクリックして、[コンテンツ定義] ダイアログ ボックスを表示します。[パラメーター] オプション ボタンを選択し、[新しいパラメーターの追加] リンクをクリックして [名前] ボックスに**「msg」と入力し、[型]** ボックスの [文字列] を選択し、[値] ボックスに「msg」と入力します。

    パラメーター コンテンツの追加

    これにより、SendReply アクティビティがメッセージまたはメッセージ コントラクト型を送信し、そのデータが msg 変数にバインドされるように指定されます。これは SendReply アクティビティであるため、msg のデータは、アクティビティがクライアントに送り返すメッセージの設定に使用されます。[OK] をクリックして [コンテンツ定義] ダイアログ ボックスを閉じます。

  8. [ビルド] メニューの [ソリューションのビルド] をクリックして、ソリューションを保存およびビルドします。

ワークフロー サービス プロジェクトの構成

ワークフロー サービスは完成しました。ここでは、ホストと実行を容易にするように、ワークフロー サービス ソリューションを構成する方法について説明します。このソリューションでは、ASP.NET 開発サーバーを使用してサービスをホストします。

プロジェクトのスタートアップ オプションを設定するには

  1. ソリューション エクスプローラー[MyWFService] を右クリックし、[プロパティ] をクリックして [プロジェクトのプロパティ] ダイアログ ボックスを表示します。

  2. [Web] タブを選択し、次の図に示すように、[開始動作][ページを指定する] を選択して、ボックスに「Service1.xamlx」と入力します。

    プロジェクトのプロパティのダイアログ

    これにより、ASP.NET 開発サーバーの Service1.xamlx で定義されたサービスがホストされます。

  3. Ctrl キーを押しながら F5 キーを押して、サービスを起動します。次の図に示すように、ASP.NET 開発サーバーのアイコンが、デスクトップの右下側に表示されます。

    ASP.NET Developer Server のアイコン

    また、Internet Explorer に、サービスの WCF サービス ヘルプ ページが表示されます。

    WCF ヘルプ ページ

  4. ワークフロー アプリケーションからサービスにアクセスする方法」トピックに進み、このサービスを呼び出すワークフロー クライアントを作成します。

参照

概念

メッセージング アクティビティの使用

その他のリソース

ワークフロー サービス
ワークフロー サービスのホスティング