有没有办法从未处理的异常中恢复,而不涉及取消,终止或中止工作流?
我想要做的是重新启动工作流程,或者只是在可能的情况下记录异常。我的工作流程长期运行并托管在Windows服务中的WorkflowApplication中。
截至目前,如果遇到未处理的异常,该服务处于“已启动”状态,但我的工作流程已经停止在水中,我希望可以“启动”工作流程恢复运行,甚至如果它必须完全重新启动它的序列。
在这种情况下是否需要补偿?
答案 0 :(得分:4)
如果您使用工作流持久性并中止,则工作流将能够从商店中上次保存的状态重新启动。在工作流的战略位置添加持久活动将确保过去保存的状态是重启的神点。
请注意,将WorkflowApplication作为主机,您必须自己重新加载。最好的方法是向工作流中止时触发的Aborted属性添加回调。在那里,您创建一个新的WorkflowApplication并加载相同的工作流实例并恢复它。