ワークフロー ホスティングのオプション
Windows Workflow Foundation (WF) のほとんどのサンプルは、コンソール アプリケーションでホストされているワークフローを使用しますが、これは実際のワークフローには現実的なシナリオではありません。 実際のビジネス アプリケーションでは、開発者が作成した Windows サービス、IIS 7.0 や AppFabric などのサーバー アプリケーションのいずれかの永続的なプロセスでワークフローがホストされます。 これらの方法の違いを次に示します。
Windows AppFabric を使用した IIS でのワークフローのホスト
IIS と AppFabric は、ワークフローに推奨されるホストです。 AppFabric を使用したワークフローのホスト アプリケーションは Windows プロセス アクティブ化サービスで、これは IIS を介した HTTP への依存関係のみを解消します。
IIS のみでのワークフローのホスト
IIS 7.0 のみの使用は推奨されません。AppFabric には、実行中のアプリケーションのメンテナンスを容易にする管理ツールと監視ツールがあるためです。 IIS 7.0 のみでワークフローをホストするのは、AppFabric への移行でインフラストラクチャ上問題がある場合のみにします。
警告
IIS 7.0 では、さまざまな理由により、アプリケーション プールを定期的にリサイクルしています。 アプリケーション プールがリサイクルされると、IIS は古いプールへのメッセージの受け取りを中止し、新しいアプリケーション プールをインスタンス化して新しい要求を受け取ります。 ワークフローが応答の送信後も動作し続ける場合、IIS 7.0 は実行されたその作業を認識せず、ホスト アプリケーション プールをリサイクルする可能性があります。 これが発生した場合、そのワークフローは中止され、1004 - WorkflowInstanceAborted のメッセージが [理由] フィールドが空で追跡サービスに記録されます。
永続化を使用する場合、ホストは、最後の永続性ポイントから、中止されたインスタンスを明示的に再開する必要があります。
AppFabric を使用する場合、永続化を使用すると、ワークフロー管理サービスは、最終的に、最後に成功した永続性ポイントからワークフローを再開します。 永続化を使用せず、ワークフローが要求/応答パターン以外の操作を実行している場合、ワークフローが中止されるとデータは失われます。
カスタム Windows サービスでのワークフローのホスト
カスタム ワークフロー サービスを作成してワークフローをホストする場合、開発者は AppFabric に標準搭載されている多くの機能を複製する必要がありますが、カスタム機能をより柔軟に使用できるようになります。 このオプションは、AppFabric を選択できない場合にのみ検討してください。
.NET