Biztalk-为什么在控制台中出现已处理的异常的挂起消息?

问题描述 投票:0回答:1

这是我们在一些BizTalk业务流程中拥有的通用结构的图像:enter image description here

因此,当我们从API获取信息而该帐户不存在时,我们将终止业务流程。这可以正常工作,我可以看到业务流程正在执行该操作并在适当的时候终止它,但是我不明白的是为什么我会在控制台中看到来自GET的挂起消息?由于异常处理有效,因此这不应该停止在控制台中显示的错误吗?

作为一种解决方法,我已经考虑使用管道组件来检查响应消息,并且如果它包含将被忽略的内容,则只需返回null即可代替该消息。这会产生想要的效果吗?我对为什么在控制台中看到挂起的消息更感兴趣。

exception biztalk biztalk-2013r2
1个回答
0
投票

[是的,这是WCF-WebHttp适配器的已知问题,与它以SOAP格式的错误将其扔回的事实有关,但是没有设置MessageType上下文属性(请参阅我的blog post并查找错误:BizTalk WCF-WebHttp适配器未设置错误消息类型。因此,尽管异常在业务流程中抛出并可以在该业务流程中进行处理,但该消息并非如此,因为BizTalk不知道它是什么类型,并且将挂起。

我们使用的解决方法是

  1. 为发送端口上的失败消息设置启用路由
  2. 具有一个从该发送端口订阅所有消息的发送端口,该发送端口将其发送到自定义NULL适配器(将消息丢弃)
  3. [从其他我们想进入异常处理的发送端口更新处理路由错误的发送端口,以排除我们正在通过业务流程处理的那些发送端口。
© www.soinside.com 2019 - 2024. All rights reserved.