5

将错误消息从 WF4 工作流返回到托管 ASP.NET MVC 应用程序的最佳方法是什么?我需要工作流不终止,但继续处于活动状态,然后将有关错误的消息传递回托管应用程序,以便用户可以采取替代操作,但我不知道该怎么做。

4

2 回答 2

6

为了使您的工作流程保持活力,您需要在工作流程中捕获异常。将 TryCatch 活动添加到您的工作流程中,在 Catch 块中,您可以使用 Send 或自定义活动将数据发送到主机应用程序。

一个例外是使用具有持久性的 WorkflowApplication.OnUnhandledException 并指定中止。在这种情况下,工作流的内存状态将被删除,并且可以为最后一个持久状态重新加载工作流。如果您采用这种方式,您需要使用 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 回答