WorkflowServiceHostクラスを介して小さなワークフローをホストしています。
using (WorkflowServiceHost wfHost = new WorkflowServiceHost(new QueueWorkflow(), new Uri("net.pipe://localhost/workflow")))
{
wfHost.Open();
Console.ReadLine();
}
このワークフローは、Receive アクティビティを使用した着信 WCF 呼び出し (現在は NetPipe バインディング) によって開始され、カスタム アクティビティに進み、何らかの作業を行った後、ブックマークを作成してアイドル状態になります (アンロードしません)。
これはすべて最初はうまくいきましたが、1000 個のワークフローを開始するようにロード テスターをセットアップすると、928 個のワークフロー インスタンスが開始され、ブックマークの作成に進みます。残りの 72 個のブロックは WCF または Receive アクティビティにあります。
- テストは常に928 個のワークフロー インスタンスで停止します。(ワークフロー メモリの制限でしょうか?)
- ワークフローの 1 つを再開し、完了するまで実行できるようにすると、ブロックされた開始要求のリスト内の次のワークフローを開始できます。
どんなアイデアでも大歓迎です。