【问题标题】:Weird issue with orchestration and send port filters编排和发送端口过滤器的奇怪问题
【发布时间】:2021-07-21 06:15:46
【问题描述】:

我有一个奇怪的问题让我很困惑。我有一个编排,它通过接收端口接收文件并将其放入发送端口并发送通知。在该编排执行一些其他操作之后,但我的问题在于上面提到的部分。它有效:我将一个文件放到接收位置,然后它会转到相应的目标文件夹。

但是,如果我为发送端口分配一个过滤器,该过滤器使用消息中提升的字段并且过滤器的表达式为 False,它仍然有效 - 我在目标文件夹中接收文件(但是过滤器为 False,发送端口不应处理此文件)。一旦过滤器变为 True,我就会收到......目标文件夹中的三个相等的文件!

是否有任何日志可以让我尝试找出这两个额外文件的来源?

【问题讨论】:

    标签: biztalk


    【解决方案1】:

    即使您将过滤器添加到发送端口,如果编排绑定到发送端口,它仍将通过该发送端口发送,无论您在其上放置什么其他过滤器。

    在管理控制台中,您查询订阅并找到发送端口,您会注意到它与http://schemas.microsoft.com/BizTalk/2003/system-properties.SPTransportID == {GUID} 有一个 OR 条件,这是当业务流程发送到绑定发送时使用的过滤器港口。

    因此,请检查您的发送端口的过滤器是什么样的。还要检查您是否设置了包含该发送端口的发送端口组,因为如果该发送端口上的过滤器匹配,这也会导致将消息发送到该发送端口。

    可能发生的情况是编排正在发送一个,并且过滤器正在匹配从接收位置接收到的消息。您将需要进行更多挖掘才能了解第三条消息的原因。

    【讨论】:

    • 知道了。感谢完美的解释。现在我明白了,如果我想使用额外的过滤器,我应该在编排的接收形状中使用过滤器表达式。但是,当我在 BizTalk Admin 中配置已构建和部署的业务流程时,而不是在 VisualStudio 中设计它时,是否可以允许配置此过滤器表达式?谢谢。
    • 您必须在 Visual Studio 中执行此操作,您无法通过管理控制台更改编排过滤器
    • 知道了。非常感谢。
    猜你喜欢
    • 2014-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 2020-12-03
    • 1970-01-01
    • 2021-05-24
    • 1970-01-01
    相关资源
    最近更新 更多