Technetにも同様の議論があります。WorkflowRuntime クラスは Workflow Foundation 3 の一部であり、WF4 型では機能しません。下位互換性のためにのみ含まれています。実際、4.5 では WorkflowRuntime は廃止されました。
System.Activities.Activity ベースのワークフローを WorkflowRuntime に使用しようとしている可能性があります。これにより、説明した ArgumentException エラーが発生します。
WF4 ワークフローをホスト/実行するには、WorkflowInvoker、WorkflowApplication、および WorkflowServiceHost のいずれかのクラスを使用する必要があります。これについては、 ドキュメントのWorkflowInvoker と WorkflowApplication の使用で説明されています。
最も簡単な方法は、WorkflowInvoker を使用してワークフローをメソッドとして実行することです。次に例を示します。
Activity wf = new WriteLine
{
Text = "Hello World."
};
WorkflowInvoker.Invoke(wf);
ただし、これではワークフローのライフサイクルをあまり制御できません。
WorkflowApplicationを使用すると完全に制御でき、WorkflowServiceHostを使用すると、ワークフローを WCF サービスとしてホストできます。
実際、独自のホストを作成せずに、Windows Server AppFabric を使用して WF4 ワークフローをホストし、AppFabric にインスタンス、セキュリティ、および回復を管理させることができます。