为通过 AS2 的消息配置接收端口

若要接收具有 EDI 或非 EDI 有效负载的 AS2 消息,请创建 HTTP 接收端口以接收消息,并将响应返回给参与方。

如果 MDN 将同步返回,则接收端口必须是双向请求-响应接收端口。 接收端口中的接收位置将收到 AS2 消息,而与双向接收端口关联的发送端口将发送同步 MDN。

如果以异步方式返回 MDN,则接收端口可以是单向接收端口,因为必须通过单独的动态发送端口返回 MDN。 接收端口将返回 HTTP 响应,无论是单向端口还是双向端口。 如果将双向接收端口设置为接收 AS2 消息,同时返回 asynchronoius MDN,则 HTTP 响应将通过双向接收位置的发送端口返回。

注释

用于接收 AS2 消息的双向接收端口不应用于接收 MDN 消息。 应在静态单向接收端口上接收 MDN 消息。 对 MDN 使用请求/响应接收端口可防止在响应传入 MDN 时返回 200OK 消息,从而导致不必要的 MDN 传输重试。

使用以下配置创建接收端口:

位置 资产 设置
接收端口属性:常规 端口类型 Request-Response
接收位置属性:常规 传输类型 HTTP 说明: 仅 HTTP 适配器可用于传输 EDIINT/AS2 编码的消息。 此传输不适用于 HTTP 适配器以外的适配器。
接收位置属性:常规 接收处理程序 BizTalkServerIsolatedHost
接收位置属性:常规 接收管道 - AS2EdiReceive (如果有效负载为 EDI 编码格式)
- AS2Receive(如果有效负载不是 EDI 编码) 注意: 使用 AS2EdiReceive 管道时,必须将 BizTalk 独立主机实例进程正在其下运行的用户帐户添加到 BizTalk 应用程序用户组。 AS2EdiReceive 管道在 BizTalk 独立主机实例进程中执行。 AS2EdiReceive 管道访问 SSO 存储,这要求用户位于 BizTalk Server 应用程序用户组中。
接收位置属性:常规 发送管道 AS2Send
HTTP 传输属性 虚拟目录和 ISAPI 扩展 /<name of virtual directory>/BTSHTTPReceive.dll
HTTP 传输属性 Request-Response 返回内容类型 text/xml

同步和异步模式下接收位置的功能

双向接收端口执行以下作来接收和处理 EDI/AS2 消息并返回响应:

  • 通过 HTTP 接收 AS2 消息。

  • 使用 AS2EDIReceive 接收管道(对于 EDI 编码的消息)或 AS2Receive 接收管道(对于未在 EDI 中编码的消息)处理 AS2 消息。 有关此过程的详细信息,请参阅 处理传入的 AS2 消息

  • 在收到的消息上设置以下上下文属性:

    • IsAS2PayloadMessage == True (因为这是一个负载消息)

    • IsEmptyMDNResponse == False (因为它不是空 MDN)

  • 如果消息是 EDI 编码的,请反汇编 EDI 文件,生成 XML 文件,并将其放入 MessageBox。 将每个 XML 文件的上下文属性 BTS.MessageType 设置为具有命名空间的架构名称。

  • 如果未对消息进行 EDI 编码,请将其本机格式的邮件拖放到 MessageBox 中。

  • 使用 AS2EdiReceive 接收管道生成 MDN 文件(如果已启用)。 有关此过程的详细信息,请参阅 生成传出 MDN。 设置消息的以下上下文属性:

    • EdiIntAS.IsAS2AsynchronousMdn == False (如果处于同步模式)

    • EdiIntAS.IsAS2AsynchronousMdn== True (如果处于异步模式)

  • 如果处于同步模式,请使用 AS2Send 发送管道发送 MDN 文件(如果已启用)。 有关此过程的详细信息,请参阅 传送外发 MDN

  • 如果处于异步模式,请将 MDN 文件(如果已启用)路由到 MessageBox,以便单独的动态发送端口可以选取并发送它。

  • 如果在异步模式下,除了异步返回的完整 MDN 之外,还生成一个空的 MDN。 设置消息的以下上下文属性:

    • IsAS2PayloadMessage == False

    • IsEmptyMDNResponse == True

  • 如果处于异步模式,则通过接收端口和发送方之间的 HTTP 连接将 HTTP 响应返回到原始发送方,这会关闭该连接。 这是必要的,因为完整的 MDN 并不会关闭同步连接。

  • 生成确认消息(如果已启用)并将其放入 MessageBox。 将 BTS.MessageType 的上下文属性设置为确认控件架构。

另请参阅

为 AS2 解决方案配置端口
处理传入 AS2 消息
生成传出 MDN
发送外发 MDN