Windows Workflow Foundation (WF) サンプルのほとんどは、コンソール アプリケーションでホストされているワークフローを使用しますが、実際のワークフローでは現実的なシナリオではありません。 実際のビジネス アプリケーションのワークフローは、永続的なプロセス (開発者によって作成された Windows サービス、または IIS 7.0 や AppFabric などのサーバー アプリケーション) でホストされます。 これらのアプローチの違いは次のとおりです。
Windows AppFabric を使用した IIS でのワークフローのホスト
IIS と AppFabric の使用は、ワークフローに推奨されるホストです。 AppFabric を使用するワークフローのホスト アプリケーションは Windows ライセンス認証サービスであり、IIS 経由の HTTP への依存関係を削除します。
IIS のみでワークフローをホストする
実行中のアプリケーションのメンテナンスを容易にする管理ツールと監視ツールが AppFabric で利用できるので、IIS 7.0 のみを使用することはお勧めしません。 ワークフローは、AppFabric への移行に関するインフラストラクチャの問題がある場合にのみ、IIS 7.0 でのみホストする必要があります。
Warnung
IIS 7.0 では、さまざまな理由でアプリケーション プールが定期的にリサイクルされます。 アプリケーション プールがリサイクルされると、IIS は古いプールへのメッセージの受け入れを停止し、新しいアプリケーション プールをインスタンス化して新しい要求を受け入れます。 応答の送信後もワークフローが引き続き動作する場合、IIS 7.0 は作業が行われていることを認識せず、ホスティング アプリケーション プールをリサイクルする可能性があります。 この場合、ワークフローは中止され、追跡サービスは空の理由フィールドを含む 1004 - WorkflowInstanceAborted メッセージを記録します。
永続化を使用する場合、ホストは、最後の永続化ポイントから中止されたインスタンスを明示的に再起動する必要があります。
AppFabric が使用されている場合、永続化が使用されている場合、ワークフロー管理サービスは最終的に最後に成功した永続化ポイントからワークフローを再開します。 永続化が使用されておらず、ワークフローが要求/応答パターンの外部で操作を実行する場合、ワークフローが中止されるとデータが失われます。
カスタム Windows サービスでのワークフローのホスト
ワークフローをホストするカスタム ワークフロー サービスを作成するには、開発者が AppFabric によって既定で提供される多くの機能を複製する必要がありますが、カスタム機能の柔軟性を高めることができます。 このオプションは、AppFabric がオプションではないことが証明された場合にのみ考慮する必要があります。
.NET