在本教程中,你将设置一个解决方案,用于通过 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)。 - 消息流 - 已完成解决方案中的消息流将如下图所示:   - 本教程组件将处理消息,如下所示: 
- 使用 sender.exe 应用程序 将原始 EDI/AS2 消息从合作伙伴 Fabrikam 发送到 BizTalk Server 计算机。 Sender.exe 将 EDI/AS2 消息发送到 Contoso 虚拟目录。 - 注释 - 此列表中的事件可能不会按显示的顺序发生。 - 测试消息是 X12_00401_864.edi,位于 \Program Files\Microsoft BizTalk Server 20xx\SDK\AS2 教程中。 
- Receive_AS2单向接收位置从 Fabrikam 接收 EDI 消息,使用 BTSHTTPReceive.dll ISAPI 扩展从 Contoso 虚拟目录选取文件。 接收管道对 AS2 消息进行解码,反汇编 EDI 交换,然后将消息 XML 拖放到 MessageBox 中。 
- 接收管道为 AS2 消息生成 MDN,由于 MDN 设置为异步,因此接收管道会将 MDN 放入 MessageBox。 
- 接收管道生成 997 确认以响应 EDI 交换,并将 997 放入消息框中。 
- Send_Payload_EdiXml 静态单向发送端口从 MessageBox 中提取 EDI 有效负载,并基于 BTS.MessageType 上下文属性进行筛选。 
- 有效负载发送端口将包含 EDI 有效负载的 XML 文件发送到由 \_EDIXMLToContoso 文件夹表示的后端 Contoso 应用程序。 此发送端口使用 PassThruTransmit 发送管道。 
- Send_Async_MDN动态发送端口从 MessageBox 中选取异步 MDN,对 EdiIntAS.IsAS2AsynchronousMdn 上下文属性进行筛选。 
- MDN 发送端口将 MDN 返回到 \_MDNToFabrikam 文件夹。 由于这是一个动态发送端口,因此它将使用邮件http://localhost/Fabrikam/Default.aspx?Destination=_MDNToFabrikam标头() 中收据Delivery-Option 行中的地址将邮件路由到 \_MDNToFabrikam 文件夹。 
- Send_Async_997 发送端口从 MessageBox 中选取 997,并根据 BTS.MessageType 上下文属性进行筛选。 
- 997 发送端口使用 HTTP 传输将 EdiReceive 接收管道生成的 997 消息发送到 \_997ToFabrikam 文件夹。 发送端口使用 URI http://localhost/Fabrikam/Default.aspx?Destination=_997ToFabrikam将消息发送到 Fabrikam default.aspx 页。 然后,default.aspx页将 997 发送到 \_997ToFabrikam 文件夹。 - 若要完成本教程,应了解以下内容: 
- BizTalk Server 管道和管道组件 
- HTTP 适配器 
- 接收端口和位置 
- 发送端口