教程 3:AS2 教程

在本教程中,你将设置一个解决方案,用于通过 HTTP 传输接收和发送 EDIINT/AS2 编码的消息。

教程解决方案的工作原理

解决方案将执行以下作用:

  • 从合作伙伴 Fabrikam 接收 AS2 消息

  • 以异步方式向合作伙伴返回 MDN 响应

  • 处理 AS2 消息的 EDI 数据包

  • 通过 AS2 向合作伙伴发送 997 确认消息(Fabrikam)

  • 将包含 EDI 消息有效负载的 XML 文件路由到主组织(Contoso)的后端应用程序。

    注释

    此解决方案不使用签名或加密来帮助确保 AS2 消息的安全性。

    教程组件

    此解决方案将使用以下方法:

  • BTS Http 接收 ISAPI 筛选器,用于接收来自发送方的 AS2/EDI 消息 (/Contoso/BTSHTTPReceive.dll)。

  • 通过返回 997 确认和 MDN(http://localhost/Fabrikam/Default.aspx)来模拟合作伙伴的 ASPX 网页。

  • 将用于部署 864 架构和其他架构(Schemas.btproj)的项目文件。

  • 用于接收 EDI 文件的单向 HTTP 接收位置(Receive_AS2)。 此接收位置使用包含 AS2 解码器和 EDI 反汇编程序的默认 AS2EdiReceive 管道。

  • 动态 HTTP 发送端口,用于返回异步 MDN(Send_Async_MDN)。 此发送端口使用包含 AS2 编码器的 AS2Send 管道。

  • 静态单向文件发送端口,用于将 XML 文件中的 EDI 有效负载路由到后端文件夹(Send_Payload_EdiXml)。 此发送端口使用 PassThruTransmit 发送管道。

  • 静态单向 HTTP 发送端口,用于通过 AS2 向合作伙伴返回 997 确认(Send_Async_997)。 此发送端口使用包含 AS2 编码器的 AS2Send 管道,但不需要 EDI 汇编程序。

  • 一个项目文件,用于生成应用程序,用于将 EDI 文件从 Fabrikam 合作伙伴发送到 BizTalk(Sender.csproj)。

    消息流

    已完成解决方案中的消息流将如下图所示:

    AS2 教程消息流

    本教程组件将处理消息,如下所示:

  1. 使用 sender.exe 应用程序 将原始 EDI/AS2 消息从合作伙伴 Fabrikam 发送到 BizTalk Server 计算机。 Sender.exe 将 EDI/AS2 消息发送到 Contoso 虚拟目录。

    注释

    此列表中的事件可能不会按显示的顺序发生。

    测试消息是 X12_00401_864.edi,位于 \Program Files\Microsoft BizTalk Server 20xx\SDK\AS2 教程中。

  2. Receive_AS2单向接收位置从 Fabrikam 接收 EDI 消息,使用 BTSHTTPReceive.dll ISAPI 扩展从 Contoso 虚拟目录选取文件。 接收管道对 AS2 消息进行解码,反汇编 EDI 交换,然后将消息 XML 拖放到 MessageBox 中。

  3. 接收管道为 AS2 消息生成 MDN,由于 MDN 设置为异步,因此接收管道会将 MDN 放入 MessageBox。

  4. 接收管道生成 997 确认以响应 EDI 交换,并将 997 放入消息框中。

  5. Send_Payload_EdiXml 静态单向发送端口从 MessageBox 中提取 EDI 有效负载,并基于 BTS.MessageType 上下文属性进行筛选。

  6. 有效负载发送端口将包含 EDI 有效负载的 XML 文件发送到由 \_EDIXMLToContoso 文件夹表示的后端 Contoso 应用程序。 此发送端口使用 PassThruTransmit 发送管道。

  7. Send_Async_MDN动态发送端口从 MessageBox 中选取异步 MDN,对 EdiIntAS.IsAS2AsynchronousMdn 上下文属性进行筛选。

  8. MDN 发送端口将 MDN 返回到 \_MDNToFabrikam 文件夹。 由于这是一个动态发送端口,因此它将使用邮件http://localhost/Fabrikam/Default.aspx?Destination=_MDNToFabrikam标头() 中收据Delivery-Option 行中的地址将邮件路由到 \_MDNToFabrikam 文件夹。

  9. Send_Async_997 发送端口从 MessageBox 中选取 997,并根据 BTS.MessageType 上下文属性进行筛选。

  10. 997 发送端口使用 HTTP 传输将 EdiReceive 接收管道生成的 997 消息发送到 \_997ToFabrikam 文件夹。 发送端口使用 URI http://localhost/Fabrikam/Default.aspx?Destination=_997ToFabrikam将消息发送到 Fabrikam default.aspx 页。 然后,default.aspx页将 997 发送到 \_997ToFabrikam 文件夹。

    若要完成本教程,应了解以下内容:

  • BizTalk Server 管道和管道组件

  • HTTP 适配器

  • 接收端口和位置

  • 发送端口

本节中

另请参阅

BizTalk Server 教程