【问题标题】:BizTalk Receive port produces extra, empty filesBizTalk 接收端口产生额外的空文件
【发布时间】:2017-07-28 18:42:45
【问题描述】:

我遇到了与 BizTalk 相关的重复问题。我有一个 AS2 接收位置,唯一的工作是接受 XML 文件,以便 BizTalk 发送端口可以接收它并将其传递给将其读入数据库的存储过程。发送端口有一个过滤器:BTS.ReceivePortName == "ReceivePortName",因此唯一应该传递给它的文件是来自该单个接收端口的文件。

但是,对于我们的客户端发送的每个文件,首先会正确处理该文件,然后立即将第二个没有内容的空文件也传递到接收端口。显然,这会在存储过程运行时引发数据库错误,从而导致发送端口挂起。

因此,对于我们获得的每个文件,我还会获得一个必须来自接收端口的“幻影”文件,因为发送端口只能从该端口接收。但是,该端口应该只从客户端接收,客户端坚称他们不会发送第二个文件。因此,我陷入了试图追踪这是来自哪里的心理循环。

关于如何跟踪此问题的任何想法?有没有人遇到过这种情况?

【问题讨论】:

    标签: xml biztalk


    【解决方案1】:

    这是正常的,空消息是由 BizTalk 创建的 - 我假设 - 在内部触发 MDN。

    使用额外的过滤器:IsAS2PayloadMessage = True

    另见 MSDN:AS2 Context properties

    【讨论】:

    • 谢谢!它完全按照你说的那样工作。我还是 BizTalk 的新手,不知道这个功能。
    【解决方案2】:

    您看到的是 BizTalk 和 AS2 处理的正常和预期行为。

    有两种可能:

    1. 第二条消息是您正在生成的 MDN,它应该被 ASYNC 返回给调用者因为他们正在请求它

    2. 呼叫者同时将 MDN 返回给您,以获取发送给他们的消息。

    很可能是第一名。 Walkthrough (AS2): Receiving EDI over AS2 with an Asynchronous MDN 描述了如何处理异步 MDN。

    注意,你不能忽略它们。调用者正在请求它们,并且可能需要 MDN 来完成它们的过程。

    【讨论】:

      猜你喜欢
      • 2020-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多