我有一个顺序工作流,它作为工作流服务在IIS中托管。
我的工作流程以ReceiveActivity开头,在ReceiveActivity内部调用带有SendActivity的WCF服务。如果此调用收到异常,则我的ReceiveActivity上有一个FaultHandlerActivity,用于处理该调用,并将默认值发送回客户端。
我的客户端发生的事情是,即使我的FaultHandlerActivity正在运行,SendActivity上的异常也会作为FaultException冒回客户端(我通过在我的错误处理程序中记录单个CodeActivity的开头和结尾来验证这一点) )
我的问题是:如何在SendActivity中吞下异常,而不将FaultException返回给客户端?
答案 0 :(得分:0)
好的,我明白了。
我的receiveActivity直接在其上有一个错误处理程序。然后会发生的是,如果任何子活动引发异常,则调用接收活动上的错误处理程序,并将其设置为Faulted状态,并将收到的异常返回给客户端应用程序 - 无论我是否想要
解决方案是在receiveActivity中添加一个序列活动,在序列活动中执行所有处理,并在Sequence中添加一个faultHandlerActivity,它设置我的默认返回值。
接收活动永远不会出现故障,并且异常不会返回给我的客户端,但会返回在Sequence的FaultHandler中设置的默认值。
希望这可以帮助其他人解决同样的问题