Windows工作流 - 无法处理ReceiveActivity中的异常

时间:2009-12-15 14:41:48

标签: exception-handling workflow-foundation

我有一个顺序工作流,它作为工作流服务在IIS中托管。

我的工作流程以ReceiveActivity开头,在ReceiveActivity内部调用带有SendActivity的WCF服务。如果此调用收到异常,则我的ReceiveActivity上有一个FaultHandlerActivity,用于处理该调用,并将默认值发送回客户端。

我的客户端发生的事情是,即使我的FaultHandlerActivity正在运行,SendActivity上的异常也会作为FaultException冒回客户端(我通过在我的错误处理程序中记录单个CodeActivity的开头和结尾来验证这一点) )

我的问题是:如何在SendActivity中吞下异常,而不将FaultException返回给客户端?

1 个答案:

答案 0 :(得分:0)

好的,我明白了。

我的receiveActivity直接在其上有一个错误处理程序。然后会发生的是,如果任何子活动引发异常,则调用接收活动上的错误处理程序,并将其设置为Faulted状态,并将收到的异常返回给客户端应用程序 - 无论我是否想要

解决方案是在receiveActivity中添加一个序列活动,在序列活动中执行所有处理,并在Sequence中添加一个faultHandlerActivity,它设置我的默认返回值。

接收活动永远不会出现故障,并且异常不会返回给我的客户端,但会返回在Sequence的FaultHandler中设置的默认值。

希望这可以帮助其他人解决同样的问题