通过文件的 AS2(BizTalk Server 示例)

AS2 Over File 示例演示了如何通过 FILE 接收位置接收 AS2 消息。 这样,便可使用 FILE 适配器接收 AS2 消息,而不是通常使用的 HTTP 适配器。 若要完成该操作,此解决方案会按照 AS2 解码器的要求,将 AS2 消息中的 HTTP 标头写入 InboundHTTPHeaders 上下文属性。

本示例的用途

本示例演示如何在没有 HTTP 适配器的情况下处理 AS2 消息中的 HTTP 标头。 具体而言,本示例执行下列操作:

  1. 当将测试消息放入输入文件夹时,FILE 接收位置将提取该消息。

  2. 自定义 AS2 接收管道中的自定义管道组件处理该消息,将其 HTTP 标头写入 InboundHTTPHeaders 上下文属性中。

    注意

    如果在自定义管道组件的下游消息处理失败,则可能难以恢复消息处理,因为该消息已经转换为 XML 编码。

  3. 自定义接收管道中的 AS2 解码器处理消息,读取 InboundHTTPHeaders 上下文属性中的属性以进行处理。

  4. 发送端口订阅由接收管道生成的 XML 消息,将其通过直通发送管道传递,并将其放入输出文件夹。

本示例所在的位置

此示例位于 BizTalk Server 安装文件夹中:\Program Files (x86) \Microsoft BizTalk Server <VERSION>SDK\Samples\AS2\AS2 Over File。

下表显示了本示例中的文件及其用途说明:

文件 说明
AS2OverFile.csproj 包含自定义管道组件代码的项目。
AS2OverFile.sln 包含 AS2OverFile.btproj 项目的解决方案。
Program.cs 包括表示标头数据的类。
SampleMessage.txt 包含 HTTP 标头的示例消息。

实现和运行本示例

若要实现 AS2 Over File 示例,需要执行以下操作:

  • 生成并部署本示例的 BizTalk 项目,创建自定义管道组件

  • 使用自定义管道组件创建自定义管道,并且用该自定义管道生成和部署项目

  • 创建输入和输出文件夹

  • 配置接收端口和位置,并且启用接收位置

  • 配置发送端口并启动发送端口

  • 创建发送示例消息的参与方

生成具有 AS2 Over File Emulator 管道组件的自定义管道

  1. 在 Visual Studio 中,在 \Program Files (x86) \Microsoft BizTalk Server <VERSION>SDK\Samples\AS2\AS2 Over File 文件夹中打开 AS2OverFile 项目。

  2. 创建强名称密钥文件,打开 AS2OverFile 项目的“属性”对话框,并将该密钥文件分配给此项目。

  3. 生成项目。

  4. 在 Visual Studio 中,创建名为 AS2OverFile_Pipeline 的新 BizTalk 项目。

  5. 右键单击AS2OverFile_Pipeline项目,指向 “添加”,然后单击“ 新建项”。

  6. 在“ 添加新项 ”对话框中,在左侧窗格中选择“ 管道文件 ”,在右侧窗格中选择“ 接收管道 ”,将管道命名为AS2OverFile_Receive.btp,然后单击“ 添加”。

  7. 单击菜单栏中的“ 视图 ”,然后单击“ 工具箱 ”以显示“工具箱”。

  8. 在“工具箱”中,右键单击“ BizTalk 管道组件”,然后单击“ 选择项”。

  9. “选择工具箱项 ”对话框中,单击“ BizTalk 管道组件 ”选项卡。单击 “AS2 Over File Emulator”,然后单击“ 确定”。

  10. 通过打开 Visual Studio 命令提示符,对 \AS2 Over File\obj\Debug 文件夹中的 Microsoft.BizTalk.Sdk.Components.AS2OverFile.dll 执行命令 gacutil /if "<file name and path>" ,将 AS2OverFile.dll 文件添加到全局程序集缓存中。

  11. 在 Visual Studio 中,将 AS2 Over File Emulator 管道组件从工具箱拖动到自定义管道的 解码 阶段。

  12. 将 AS2 解码器组件拖到自定义管道的 解码 阶段,在 AS2 Over File 组件之后。

    注意

    如果要生成 MDN,请将 AS2 拆装器添加到自定义管道的“拆装”阶段。 如果不返回 MDN,则不需要 AS2 拆装器。

  13. 创建强名称密钥文件,打开 AS2OverFile_Pipeline 项目的“属性”对话框,并将该密钥文件分配给此项目。

  14. 生成并部署自定义管道。

  15. 在BizTalk Server管理控制台中,单击“管道”节点,然后单击“刷新”,将自定义管道添加到“管道”节点。

实现本示例的解决方案

  1. 在 Windows 资源管理器的 \Program Files (x86) \Microsoft BizTalk Server <VERSION>SDK\Samples\AS2\AS2 Over File 文件夹中,创建 In input 文件夹和 Out 输出文件夹。

  2. 在BizTalk Server管理控制台中,创建名为 AS2OverFile_Receive 的单向接收端口。 在此接收端口中,创建具有下列属性的接收位置:

    属性 设置
    名称 AS2OverFile_Receive
    类型 文件
    接收文件夹 \Program Files (x86) \Microsoft BizTalk Server <VERSION>SDK\Samples\AS2\AS2 over file/in
    文件掩码 *.txt
    接收管道 AS2OverFile
  3. 在“接收位置”节点中,右键单击AS2OverFile_Receive接收位置,然后单击“ 启用”。

  4. 在“发送端口”节点中,创建具有下列属性的静态单向发送端口:

    属性 设置
    名称 AS2OverFile_Send
    类型 文件
    接收文件夹 \Program Files (x86) \Microsoft BizTalk Server <VERSION>SDK\Samples\AS2\AS2 over file/out
    文件掩码 %MessageID%.xml
    发送管道 Passthru
    筛选器 BTS.REceivePortName == AS2OverFile_Receive
  5. 在“发送端口”节点中,右键单击AS2OverFile_Send发送端口,然后单击“ 启动”。

  6. 在“参与方”节点中,创建名为“伙伴”的参与方。 在“别名”列表中,添加名称EDIINT-AS2 From ValueAS2-From 限定Partner 值的别名。

    BizTalk Server现在已准备好使用此示例。

运行本示例

使用以下过程运行 AS2 Over File 示例。

运行本示例的步骤

  1. 将 SampleMessage.txt 文件从 \Program Files (x86) \Microsoft BizTalk Server <VERSION>SDK\Samples\AS2\AS2 Over File 文件夹复制到 \AS2 Over File\In 文件夹中。

  2. 验证是否已将输出 XML 消息放入 \AS2 Over File\Out 输出文件夹中。

  3. 在文本编辑器中打开输入消息 SampleMessage.txt,并在文本编辑器中打开输出消息 <GUID>.xml。 验证 SampleMessage.txt 输入消息是否具有 HTTP(和 AS2)标头以及输出消息是否不具有 HTTP 标头。

本示例中使用的类或方法

另请参阅

EDI 和 AS2(BizTalk Server 示例文件夹)
通过 FILE 发送端口发送 AS2 消息