質問をする前に、また似たような質問がいくつかあるので怒る前に、プロジェクトの要件とは何かについて少し説明したいと思います。その質問は他のすべての質問とは異なることがわかります。
- ユーザーは、ReHosted WPF アプリケーションを使用してワークフローを作成し、xaml ファイルを当社が提供する Web アプリケーションにアップロードします。
- ワークフローの実行を開始するためのエントリ ポイントは、その Web アプリケーションにあります。UI を使用したり、独自のアプリケーションから API 機能を使用したりできます。
- ワークフローは長時間実行されます。
ホスティングのさまざまな可能性を認識しています。
ASP.NET Web アプリケーション内でホストするのが最も簡単ですが、ユーザーがアップロードするワークフローの種類がわからないため、IIS AppDomain のリサイクルによってワークフロー スレッドの実行が中断される可能性があります。
WCF ワークフロー サービスは見栄えがしますが、ユーザーが独自の xaml ワークフロー定義をアップロードするという事実は、事態をより複雑にします。WCF サービスとして公開されたコアワークフローのようなものを作成する必要があるように見えます。そのワークフローは内部ワークフローをロードして実行します (顧客がアップロードした xaml)。その場合、パラメーターが内部ワークフローにどのように渡されるかわかりません。
3 番目のオプションは、 Windows Serviceでワークフローの実行をホストすることです。Web アプリケーションとウィンドウ サービス間の通信は、MSMQ を介して行うことができます。このソリューションの欠点は、Web アプリと Win サービス間の良好な通信を確保するためのボイラープレート コードである可能性があります。
より良い解決策がありませんか?詳細が必要な場合は、コメントを投稿してください。