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

Weird issue with orchestration and send port filters

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

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

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

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

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

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

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