0

WorkflowServiceHostクラスを使用して小さなワークフローをホストしています。WF4:ワークフローサービスが新しい要求の受け入れを停止します

using (WorkflowServiceHost wfHost = new WorkflowServiceHost(new QueueWorkflow(), new Uri("net.pipe://localhost/workflow"))) 
{ 
    wfHost.Open(); 
    Console.ReadLine(); 
} 

このワークフローは、receiveアクティビティを使用して(現在は結合用netpipeは)いくつかの作業を行いカスタムアクティビティに進み、その後、しおりを作成し、(アンロードされない)アイドル状態になっ入ってくるWCF呼び出しによって開始されます。

これはすべてうまくいきましたが、1000のワークフローを開始するように負荷テスターを設定した場合、928のワークフローインスタンスが開始され、ブックマークの作成に続き、残りの72ブロックがWCFまたはReceiveアクティビティ。

  • テストは常にワークフローインスタンスで停止します。
  • ワークフローの1つを再開して実行を完了させることで、ブロックされた開始要求のリスト内の次のワークフローを開始することができます。

答えて

1

serviceThrottlingがここで役割を果たしていると思われます。 WCFに影響するだけでなく、WF4ランタイムでも使用されます。設定が変更されているかどうかを確認してください。

私が投稿したブログ記事はhereをご覧ください。

+0

これは正しいです。 ServiceThrottlingBehaviorをサービスホストに追加し、MaxConcurrentInstancesプロパティを増やして問題を解決しました。 – BBoy

関連する問題