5

WF4ワークフローからホスティングASP.NETMVCアプリケーションにエラーメッセージを戻すための最良の方法は何ですか?ワークフローを終了せずにアクティブな状態を維持し、エラーに関するメッセージをホスティングアプリに返して、ユーザーが別のアクションを実行できるようにする必要がありますが、その方法がわかりません。

4

2 に答える 2

6

ワークフローを存続させるには、ワークフローの例外をキャッチする必要があります。ワークフローにTryCatchアクティビティを追加し、Catchブロックで、送信またはカスタムアクティビティのいずれかを使用してデータをホストアプリケーションに送信できます。

唯一の例外は、WorkflowApplication.OnUnhandledExceptionを永続的に使用し、abortを指定することです。その場合、ワークフローのメモリ内状態が削除され、最後に永続化された状態のワークフローを再ロードできます。この方法を使用する場合は、Peristアクティビティを使用して、やり直せないことがある場合は常にワークフローが保存されていることを確認する必要があります。

于 2010-03-30T13:54:29.257 に答える
2

WF4に関しては、TryCatchだけでは十分ではありません。また、ワークフローホストからUnhandledExceptionイベントを処理しても、失敗したアクティビティとその理由についてはあまりわかりません。

推奨されるアプローチは、WF4内でTryCatchとアクティビティ追跡を使用することです。これの良い要約はここで見つけることができます:http://msmvps.com/blogs/theproblemsolver/archive/2009/11/27/trycatch-activity-in-wf4.aspx

ワークフローホストをTracking参加者と、障害が発生する可能性のあるアクティビティをカプセル化するcatchハンドラーを使用して拡張し、例外を処理して、何が起こったかをよりよく説明できる新しいTrackingRecordを作成できます。

于 2010-03-30T16:29:52.897 に答える