方法: WorkflowServiceHost を使用してワークフロー サービスの未処理の例外動作を構成する
WorkflowUnhandledExceptionBehavior は、WorkflowServiceHost でホストされるワークフロー内で未処理の例外が発生した場合のアクションを指定できるようにする動作です。 このトピックでは、この動作を構成ファイルで構成する方法を示します。
WorkflowUnhandledExceptionBehavior を構成するには
次の例に示すように、
<serviceBehaviors>
要素内の<behavior>
要素内に<workflowUnhandledException>
要素を追加し、action
属性を使用して、ハンドルされない例外が発生したときに実行するアクションを指定します。<behaviors> <serviceBehaviors> <behavior name=""> <workflowUnhandledException action="abandonAndSuspend"/> </behavior> </serviceBehaviors> </behaviors>
Note
前の構成サンプルでは、簡略化された構成を使用しています。 詳細については、「簡略化された構成」を参照してください。
この動作は、次の例に示すように、コードで構成できます。
host.Description.Behaviors.Add(new WorkflowUnhandledExceptionBehavior { Action = WorkflowUnhandledExceptionAction.AbandonAndSuspend });
<workflowUnhandledException>
要素のaction
属性は、次のいずれかの値に設定できます。abandon 永続化されているインスタンス状態を変更することなく、メモリ内のインスタンスを中止します (つまり、最後の永続性ポイントにロールバックします)。
abandonAndSuspend メモリ内のインスタンスを中止し、永続化されているインスタンスを中断状態に更新します。
cancel インスタンスのキャンセル ハンドラーを呼び出してから、メモリ内のインスタンスを完了状態にします。これにより、そのインスタンスがインスタンス ストアから削除される場合もあります。
terminate メモリ内のインスタンスを完了状態にし、そのインスタンスをインスタンス ストアから削除します。
WorkflowUnhandledExceptionBehavior の詳細については、「ワークフロー サービス ホストの拡張機能」を参照してください。