次の方法で共有


チュートリアル : ASP.NET を使用したワークフロー アプリケーションの作成

ASP.NET でワークフロー アプリケーションをホストする際には、ワークフロー ランタイムの作成、ページ フローの管理、データの保持と取得など、考慮すべきいくつかの事項があります。このチュートリアルでは、基本的なワークフロー ライブラリと、ワークフローを実行してワークフローとやり取りする Web サイトを作成する手順について説明します。このチュートリアルでは、次のワークフローのトピックを示します。

  • ワークフロー ランタイムの作成

  • ワークフロー ランタイムへのサービスの追加

  • ワークフローとホスト アプリケーションの通信

  • ワークフロー追跡情報の保存と取得

  • ワークフローの永続性

  • 手動によるワークフローのスケジュール

このアプリケーションでは、ワークフロー ランタイムがアプリケーションの開始時に作成され、Application コレクションに保存されます。ページは、このコレクションを介してランタイムを参照します、この方法では、Web アプリケーション全体が同じランタイム インスタンスを使用します。

ランタイムが Application_Start イベント ハンドラで作成されると、追跡、スケジュール、永続化、およびホスト通信するためのサービスが追加されます。スケジュール サービスとホスト通信サービスは、必要に応じて GetService を介してアクセスされますが、追跡サービスと永続化サービスは、ホスト アプリケーションとそれ以上の対話を行わずに動作します。

ホスト アプリケーションとワークフロー間の通信は、次の 3 つの方法で行われます。

  • パラメータは、作成時にアプリケーションからワークフローに渡されます。これらのパラメータは引数として CreateWorkflow の呼び出しに送信されます。

  • メッセージは、ローカル通信サービスを使用してホスト アプリケーションから実行中のワークフローに送信されます。

  • メッセージは、ワークフローからホスト アプリケーションに追跡インフラストラクチャを介して間接的に送信されます。ワークフローは、それ自体についての情報を TrackData メソッドを使用して SQL データベースに保存します。この追跡データは、ホストによって SqlTrackingQuery を通じて取得されます。ステートレス ASP アプリケーションには、ワークフローによって生成されるイベントを処理するためのユーザー コードが実行されていないため、このメソッドが通信サービスの代わりに使用されます。

このアプリケーションは、標準装備の SqlWorkflowPersistenceService を使用してアイドル状態のワークフローを永続化します。ランタイムへの永続化サービスの追加を除き、ワークフローの永続化に必要なユーザー コードはありません。サービスが配置されると、ランタイムは自動的にワークフローの永続化、アンロード、および再読み込みを行います。

ASP アプリケーションの要件のため、アプリケーションは、それ自体のプロセスでワークフローを実行する必要があります。既定のワークフロー スケジュール サービスは、その独自のプロセスでワークフローを実行するため、使用することはできません。代わりに、このチュートリアルでは、ManualWorkflowSchedulerService を使用してワークフローの実行を強制します。

このチュートリアルで作成するアプリケーションはローン承認シミュレータです。アプリケーションの最初の部分では、ローン申請を作成できます。ローン申請が入力されると、新しいワークフロー インスタンスが作成され、開始されます。開始されると、ワークフローは、追跡情報を記録して、アイドル状態になり、データベースに保存され、アップロードされます。また、ランタイムは、アプリケーションからのメッセージを待機します。アプリケーションの 2 番目の部分では、追跡情報を取得することによって既存のローン申請を表示できます。また、既存のローン申請に承認または却下のマークを付けることもできます。これにより、ワークフロー ランタイムを通じて関連付けられたワークフローにメッセージが送信されます。ランタイムがワークフローのメッセージを受け取ると、ワークフローが再度読み込まれます。その後、ワークフローは HandleExternalEventActivity を使用してメッセージを受け取ります。ワークフローは、ワークフロー追跡インフラストラクチャを通じてローンが承認されたかどうかを記録し、実行を完了します。

このチュートリアルを完了するには、インターネット インフォメーション サービスがインストールされている必要があります。また、ワークフローの追跡と永続化には、Microsoft SQL Server または MSDE も必要です。

このセクションの内容

演習 1: ワークフロー プロジェクトの作成

演習 2: Web サイトの作成

関連項目

ASP.NET でのワークフローの使用

関連項目

その他の技術情報

Windows Workflow Foundation チュートリアル

Footer image

Copyright © 2007 by Microsoft Corporation.All rights reserved.