BizTalk接收端口生成额外的空文件

时间:2017-07-28 18:42:46

标签: xml biztalk

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

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

因此,对于我们获得的每个文件,我也得到了一个" Phantom"必须来自接收端口的文件,因为发送端口只能从该端口接收。但是,该端口应仅从客户端接收,该客户端坚持要求他们不发送第二个文件。因此,我陷入了试图追踪其来源的心理循环。

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

2 个答案:

答案 0 :(得分:1)

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

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

另请参阅MSDN:AS2 Context properties

答案 1 :(得分:1)

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

有两种可能性:

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

  2. 调用方同时向您发送MDN给发送给他们的邮件。

  3. 最有可能的是,它是#1。 Walkthrough (AS2): Receiving EDI over AS2 with an Asynchronous MDN描述了如何处理异步MDN。

    请注意,您不能忽略它们。来电者正在请求他们,并且可能需要MDN来完成他们的流程。