编排和发送端口过滤器的奇怪问题

问题描述

我遇到了一个奇怪的问题,这让我很困惑。我有一个业务流程,它通过接收端口接收一个文件,并将其发送到带有传递通知的发送端口。在该编排执行一些其他操作之后,但我的问题与上述部分有关。它有效:我将一个文件放在接收位置,然后它会转到适当的目标文件夹。

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

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

解决方法

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

在管理控制台中,您对订阅进行查询并找到发送端口,您会注意到它将具有带有 http://schemas.microsoft.com/BizTalk/2003/system-properties.SPTransportID == {GUID} 的 OR 条件,这是当业务流程发送到绑定发送端口。

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

可能发生的情况是 Orchestration 正在发送一个消息,并且过滤器正在匹配从接收位置接收到的消息。您将不得不进行更多挖掘,以了解为什么会出现第三条消息。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...