这是我们在一些BizTalk业务流程中拥有的通用结构的图像:
因此,当我们从API获取信息而该帐户不存在时,我们将终止业务流程。这可以正常工作,我可以看到业务流程正在执行该操作并在适当的时候终止它,但是我不明白的是为什么我会在控制台中看到来自GET的挂起消息?由于异常处理有效,因此这不应该停止在控制台中显示的错误吗?
作为一种解决方法,我已经考虑使用管道组件来检查响应消息,并且如果它包含将被忽略的内容,则只需返回null即可代替该消息。这会产生想要的效果吗?我对为什么在控制台中看到挂起的消息更感兴趣。
[是的,这是WCF-WebHttp适配器的已知问题,与它以SOAP格式的错误将其扔回的事实有关,但是没有设置MessageType上下文属性(请参阅我的blog post并查找错误:BizTalk WCF-WebHttp适配器未设置错误消息类型。因此,尽管异常在业务流程中抛出并可以在该业务流程中进行处理,但该消息并非如此,因为BizTalk不知道它是什么类型,并且将挂起。
我们使用的解决方法是