文件适配器(BizTalk Server 示例)

文件适配器示例是用 Microsoft Visual C# .NET 编写的,用于 Microsoft BizTalk Server。 它提供了建立动态或静态适配器的代码。 不过,以下过程仅简要介绍静态适配器。 静态适配器是具有静态架构集合且没有自定义用户接口的适配器。 动态适配器具有自定义用户接口,并可能具有动态架构集合。 静态适配器和动态适配器均使用添加适配器向导向 BizTalk 项目中添加其架构。

注意

文件适配器示例与 BizTalk Server 附带的本机 FILE 适配器不同。 因此,在使用本示例时如果要选择传输类型,请选择“静态”,而不是 FILE。

具有自定义用户接口并可能具有动态架构集合的动态适配器在适配器管理方面需要编写额外的代码。 若要更好地了解动态架构集的使用,请参阅 动态 Design-Time 适配器配置

本示例的用途

示例适配器从文件文件夹中复制文件,将作为消息提交到 BizTalk,或者从BizTalk Server获取消息并将其拖放到文件夹。 它提供了建立动态或静态适配器的代码;不过,以下过程仅简要介绍静态适配器。 静态适配器是具有静态架构集合且没有自定义用户接口的适配器。 动态适配器具有自定义用户接口,并可能具有动态架构集合。 静态适配器和动态适配器均使用添加适配器向导向 BizTalk 项目中添加其架构。

可以将该示例文件适配器用作创建其他自定义适配器的模板。

本示例所在的位置

<示例路径>\AdaptersDevelopment\File Adapter

注意

在运行 32 位版本的 Windows 的计算机上安装BizTalk Server时,示例路径>的默认位置<为 %ProgramFiles%\Microsoft BizTalk Server\SDK\Samples。 在运行 64 位版本的 Windows 的计算机上安装BizTalk Server时,示例路径>的默认位置<为 %ProgramFiles (x86) %\Microsoft BizTalk Server\SDK\Samples。 若要确定与 %ProgramFiles%%ProgramFiles 关联的值 (x86) % 环境变量,请在命令提示符下键入 echo %ProgramFiles%echo %ProgramFiles (x86) % ,然后按 Enter。 如果在 64 位操作系统上运行此示例,则需要在运行 .reg 文件之前将任何 .reg 文件中的所有引用从 %ProgramFiles% 更改为 %ProgramFiles (x86) %。

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

\File Adapter 文件 说明
\BizTalk Project 文件 包含适配器管理项目,用于测试示例适配器。
\Design Time 文件 包含设计时项目和管理项目 (AdapterManagement.csproj)。
\Runtime 文件 包含运行时文件复制接收和传输项目 (DotNetFile.csproj)。
DynamicAdapterManagement.reg 注册示例动态适配器。
Instance.xml 通过文件适配器传递的示例文件。
StaticAdapterManagement.reg 注册示例静态适配器。
\BizTalk Project\Adapter Harness 文件 说明
AdapterHarness.odx、AdapterHarness.sln、AdapterHarnessProject.btproj 为 BizTalk 项目提供项目文件、解决方案文件和相关文件。
mySchema.xsd 提供管理业务流程预期从适配器的接收部分获得的 Instance.xml 的架构以及由该业务流程传递给适配器的发送部分的 Instance.xml 的架构。
\Design Time\Adapter Management 文件 说明
AdapterManagement.cs、AdapterManagement.csproj、AdapterManagement.sln 适配器设计时所需的项目、解决方案和相关文件。
AssemblyInfo.cs 包含本示例的程序集信息。
CategorySchema2.xml 本示例适配器不使用此文件。
CategorySchema.xml 包含静态适配器的服务组织树。
DotNetFileResource.resx 包含资源。
ReceiveHandler.xsd、ReceiveLocation.xsd 包含接收端处理程序和终结点自定义属性架构
service1.wsdl 包含适配器的操作定义。
TransmitHandler.xsd、TransmitLocation.xsd 包含传输端处理程序和终结点自定义属性架构
\Runtime 文件 说明
DotNetFile.csproj、DotNetFile.sln、

AssemblyInfo.cs、

DotNetFileExceptions.cs、DotNetFileProperties.cs、DotNetFileReceiver.cs、DotNetFileReceiverEndPoint.cs、DotNetFileTransmitter.cs

DotNetFileTransmitterEndpoint.cs

DotNetFileAsyncTransmitterBatch.cs、

BatchMessage.cs
运行时文件复制发送和接收适配器的文件。 对于自定义组件,可以修改这些文件并以新名称保存它们。

DotNetFile.csproj 和 DotNetFile.sln 是项目和解决方案文件。

AssemblyInfo.cs 包含本示例的程序集信息。

DotNetFileReceiver.cs 从接收位置读取文件并将其提交给 BizTalk Server。

DotNetFileExceptions.cs 实现了对消息处理过程中发生的异常进行处理的代码

DotNetFileProperties.cs 包含接收和发送操作的通用属性

BatchMessage.cs 实现批处理消息传送。

DotNetFileReceiverEndPoint.cs 是与接收位置/URI 相对应的类。 它负责轮询给定文件夹以查看是否有新消息

DotNetFileTransmitter.cs 是用于 DotNetFile 发送适配器的单独类。 通过此类将所有消息发往此适配器类型的各个发送端口

DotNetFileTransmitterEndpoint.cs 处理消息的传输工作。
\SDK\Samples\AdaptersDevelopment\BaseAdapter\v1.0.2 文件 说明
Adapter.cs、AdapterException.cs、AsyncTransmitter.cs、batch.cs、ConfigProperties.cs、ControlledTermination.cs、IManageEndpoints.cs、Receiver.cs、ReceiverEndpoint.cs 提供构成基本适配器的类。 你可以使用它们来创建你自己的适配器。

如何使用本示例

将示例文件适配器用作用于创建其他自定义适配器的模板。

生成本示例

重要

如果是在 64 位计算机上安装 BizTalk 或安装位置已修改,则需要相应修改 OutboundAssemblyPath、InboundAssemblyPath、AdapterMgmtAssemblyPath。

使用以下过程可以生成并初始化文件适配器示例。

为 DotNetFileAdapter 项目和基本适配器项目创建强名称密钥

  1. 启动 Visual Studio 命令提示符

    注意

    以管理员身份运行命令提示符。

  2. 将当前目录更改为 <Samples Path>\AdaptersDevelopment\BaseAdapter\v1.0.2 目录。

  3. 在命令提示符下,键入 sn –k BaseAdapter.snk ,然后按 Enter。 如果以前运行过其他示例,则此 .snk 文件可能已经存在。 如果确实如此,则可以跳过此步骤直接转到步骤 4。

  4. 将当前目录更改为 <Samples Path>\AdaptersDevelopment\File Adapter\Runtime 目录。

  5. 在命令提示符下,键入 sn –k DotNetFileAdapter.snk ,然后按 Enter。

  6. 在命令提示符下,键入 exit ,然后按 Enter 关闭命令提示符窗口。

生成接收器运行时项目

  1. 单击“ 开始”,指向 “所有程序”,指向“ 附件”,然后单击“ Windows 资源管理器”。

  2. 导航到 <示例路径>“\AdaptersDevelopment\File Adapter\Runtime” 目录,然后双击 DotNetFile.sln

  3. 若要重新生成适配器接收器运行时项目,请在 解决方案资源管理器中右键单击 DotNetFile,然后单击“重新生成”。

  4. 在“ 文件 ”菜单中,单击“ 退出 ”关闭 Visual Studio。

生成适配器设计时项目

  1. 在 Windows 资源管理器中<,导航到示例路径>“\AdaptersDevelopment\File Adapter\Design Time\Adapter Management”目录,然后双击“AdapterManagement.sln”。

  2. 在“解决方案资源管理器”中,右键单击“AdapterManagement”,然后单击“重新生成”。

  3. 在“ 文件 ”菜单中,单击“ 退出 ”关闭 Visual Studio。

注册示例静态适配器

  1. 在 Windows 资源管理器中<,导航到示例路径>“\AdaptersDevelopment\File Adapter”目录。

  2. 若要将示例适配器添加到注册表,请双击 StaticAdapterManagement.reg

    注意

    StaticAdapterManagement.reg 包含指向 C:\Program Files\Microsoft BizTalk Server\ 的硬编码路径。 如果未在 %ProgramFiles%\Microsoft BizTalk Server\ 目录中安装BizTalk Server,则从 BizTalk Server 2009 或 BizTalk Server 2006 R2 升级了BizTalk Server安装,或者安装了BizTalk Server运行 64 位版本 Windows 的计算机上,必须使用适当的路径修改 StaticAdapterManagement.reg 文件。 默认情况下,BizTalk Server安装在运行 64 位版本的 Windows 的计算机上的 %ProgramFiles (x86) %\Microsoft BizTalk Server\ 目录中。 更新与“InboundAssemblyPath”、“OutboundAssemblyPath”和“AdapterMgmtAssemblyPath”值相关联的路径,使之指向指定文件的正确位置。

    重要

    如果在 64 位计算机上安装 BizTalk,请将 HKEY_CLASSES_ROOT\CLSID\ 注册表项的所有实例更改为 staticAdapterManagement.reg 注册表文件中 HKEY_CLASSES_ROOT\Wow6432Node\CLSID\。

  3. “注册表编辑器 ”对话框中,单击“ ”将示例适配器添加到注册表,然后单击“ 确定”。

  4. 若要关闭 Windows 资源管理器,请在“ 文件 ”菜单上单击“ 关闭”。

安装示例静态适配器

  1. 单击“开始”,选择“所有程序”,选择“Microsoft BizTalk Server 20xx”,然后选择“BizTalk Server管理”。

  2. 在BizTalk Server管理控制台中,依次单击展开“BizTalk Server管理”、“BizTalk 组”和“平台设置”。

  3. 右键单击“ 适配器”,单击“ 新建”,然后单击“ 适配器”。

  4. “添加适配器 ”对话框中,执行以下操作。

    使用此选项 要执行此操作
    名称 类型 Static
    适配器 从下拉列表中选择“ 静态 DotNetFile ”。
    注释 键入 示例适配器
  5. 单击 “确定”

    该静态适配器此时即会显示在 BizTalk 管理控制台右侧窗口中的适配器列表中。

停止并重启主机实例

  1. 单击“开始”,选择“所有程序”,选择“Microsoft BizTalk Server 20xx”,然后选择“BizTalk Server管理”。

  2. 在BizTalk Server管理控制台中,依次单击展开“BizTalk Server管理”、“BizTalk 组”、“平台设置”和“主机实例”。 在右窗格中选择“BizTalkServerApplication”。

  3. 在结果窗格中,右键单击通常 (主机实例,计算机名称) ,然后单击“ 重启”。

运行本示例

运行文件适配器示例
  1. 单击“ 开始”,指向 “所有程序”,指向“ 附件”,然后单击“ Windows 资源管理器”。

  2. 在BizTalk Server安装驱动器上创建以下文件夹:

    • <drive>\Temp

    • <drive>\Temp\Send

    • <drive>\Temp\Receive

  3. 若要关闭 Windows 资源管理器,请在“ 文件 ”菜单上单击“ 关闭”。

  4. 单击“开始”,指向“所有程序”,指向“Microsoft BizTalk Server 20xx”,然后单击“BizTalk Server管理”。

  5. 右键单击“BizTalk Server管理”节点,然后选择“连接到现有组”。

  6. “连接到现有BizTalk Server配置数据库”对话框中,执行以下操作。

    注意

    BizTalk 管理数据库也称为 BizTalk 配置数据库。

    使用此选项 要执行此操作
    SQL Server 键入 . (句点) 。
    Database 选择由配置向导创建的 BizTalk 管理数据库的名称。 配置向导使用的默认数据库名称为 BizTalkMgmtDb
  7. 单击 “确定”

  8. 在 BizTalk Server 管理控制台中展开 BizTalk 组[服务器名称]节点,展开“应用程序”节点,再展开 BizTalk 应用程序 1 节点。

  9. 右键单击“ 发送端口” 节点,然后单击“ 新建”,选择“ 静态 One-Way 发送端口”,然后单击“ 确定”。

  10. “发送端口属性 ”对话框中,选择“ 常规”,然后执行下列操作。

    使用此选项 要执行此操作
    名称 键入 AdapterSend
    传输类型 从下拉列表中选择“ 静态 ”,然后单击“ 配置”。

    - 在“ 目录 ”框中,键入 <drive>:\Temp\Send
    - 在“ 文件模式 ”框中,选择“ 创建”“新建”。
    - 在“ 文件名 ”框中,键入 %MessageID%.xml
    - 单击“ 确定”。
    - URI 字段应显示 <drive>:\Temp\Send\%MessageID%.xml
    发送管道 选择 “PassThruTransmit (Microsoft.BizTalk.DefaultPipelines.PassThruTransmit) ”,然后单击“ 确定”。
  11. BizTalk 应用程序 1 节点下,单击“ 接收端口”,然后选择“ 新建/One-Way 接收端口”。

  12. “新建接收端口 ”对话框的“ 指定接收端口的类型 ”框中,从下拉列表中选择“ 单向接收端口 ”,然后单击“ 确定”。

  13. “接收端口属性 ”对话框的“ 名称 ”框中,键入 “AdapterReceive”,然后单击“ 确定”。

  14. BizTalk 应用程序 1 节点下,右键单击“ 接收位置”,然后选择“ 新建/单向接收位置”。

  15. “选择接收端口 ”对话框中,选择“ AdapterReceive”, 然后单击“ 确定”。

  16. 在“ 接收位置属性 ”对话框中,执行以下操作。

    使用此选项 要执行此操作
    名称 类型 AdapterReceiveLocation
    传输类型 从下拉列表中选择“ 静态 ”,然后点击“ 配置” 以访问这些剩余属性。
    URI - 单击省略号按钮 (...) 。
    - 在“ 批中的文件数 ”框中,键入 20
    - 在 “目录 ”框中,键入 <drive>:\Temp\Receive
    - 确保 文件掩码 属性设置为 *.xml
    - 在“ 轮询间隔 ”框中,键入 5,然后单击“ 确定”。
    - 确保 URI 标签包含 <drive>:\Temp\Receive\*.xml
    接收处理程序 从下拉列表中选择 BizTalkServerApplication
    接收管道 从下拉列表中选择“ XMLReceive ”。
  17. 单击 “确定”

    继续 执行生成、部署和绑定示例适配器

示例适配器的生成、部署和绑定

在适配器投入使用前,必须生成项目、绑定业务流程与端口以及登记适配器。

为静态适配器创建强名称密钥
  1. 启动 Visual Studio 命令提示符

  2. 在命令提示符下,将当前目录更改为 <Samples Path>\AdaptersDevelopment\File Adapter\BizTalk Project\Adapter Harness 目录。

  3. 在命令提示符下,键入 sn –k AdapterHarness.snk,然后按ENTER。

  4. 单击 “确定”

生成适配器管理项目
  • 在“解决方案资源管理器”中,右键单击“AdapterHarnessProject”,然后单击“重新生成”。
部署适配器管理项目
  1. 在“解决方案资源管理器”中,重新生成项目后,右键单击“适配器”“HarnessProject”,然后单击“部署”。

  2. 在BizTalk Server管理控制台中,选择已部署的项目,然后单击“刷新”。

绑定业务流程与端口
  1. 在BizTalk Server管理控制台中,在相应的BizTalk Server应用程序下,展开“业务流程”节点。

  2. 右键单击“ AdapterHarness.AdapterHarnessType”,然后单击“ 绑定”。

  3. 在“ 端口绑定属性 - AdapterHarness.AdapterHarnessType- Binding Configurations ”对话框中,执行以下操作。

    使用此选项 要执行此操作
    AdapterFileReceivePort 从下拉列表中选择“适配器”“ 获取 ”。
    AdapterFileSendPort 从下拉列表中选择“ 适配器”“发送 ”。
  4. 在左窗格中,单击“ 主机”。

  5. 在“ 主机 ”框中,从下拉列表中选择“ BizTalkServerApplication ”,然后单击“ 确定”。

    继续 执行“管理示例适配器”。

管理示例适配器

可以在 BizTalk 管理控制台中完成示例适配器的管理任务。

管理文件适配器示例
  1. 单击“开始”,指向“所有程序”,指向“Microsoft BizTalk Server 20xx”,然后单击“BizTalk Server管理”。

  2. 在左窗格中,单击以展开 应用程序,单击以展开 BizTalk 应用程序 1,然后单击 接收位置

  3. 确保 AdapterReceive 状态为 “已启用”。

    如果状态为“ 已启用”,请在右窗格中右键单击“ 适配器”“获取 ”,然后单击“ 启用”。

  4. 在左窗格中,单击“业务流程”,并确保已登记AdapterHarness.AdapterHarnessType。 右键单击“ AdapterHarness.AdapterHarnessType”,然后单击“ 登记 ” (如果已登记 AdapterHarness.AdapterHarnessType,则“ 登记 菜单”选项) 不可用。

  5. 右键单击“ AdapterHarness.AdapterHarnessType ”,然后选择“ 启动”。 此业务流程的状态应更改为 “正在运行”。

    继续 测试示例适配器

测试示例适配器

在部署示例适配器后,必须停止并重新启动主机实例。 在投入生产前测试示例适配器很重要。

停止并重启主机实例
  1. “BizTalk Server管理控制台”中,单击展开“BizTalk Server管理”,单击“BizTalk 组”,单击以展开“平台设置”,然后单击“主机实例”。 在右窗格中选择“BizTalkServerApplication”。

  2. 通常,右键单击主机实例 (,计算机名称) ,然后单击“ 停止”。

    主机实例的状态将更改为 “已停止”。

  3. 右键单击主机实例,然后单击“ 启动”。

    主机实例的状态将更改为 “正在运行”。

测试示例静态适配器运行时
  1. 在 Windows 资源管理器中<,导航到 Samples Path>\AdaptersDevelopment\File Adapter 目录,并将 InstanceXML.xml 文件复制到剪贴板。

  2. 导航到 <drive>\Temp\Receive 并将 Instance.xml 文件粘贴到 文件夹中。

    如果传输和接收适配器正常工作,则文件应从 <drive>\Temp\Receive 文件夹移动到 <drive>\Temp\Send 文件夹。

测试示例静态适配器的示例添加适配器向导功能
  1. 在 Visual Studio 解决方案资源管理器中,右键单击“AdapterHarnessProject”,指向“添加”,然后单击“添加生成的项”。

  2. “添加生成的项 - AdapterHarnessProject ”对话框中,单击“ 添加适配器元数据”,然后单击“ 打开”。

    即会显示已注册适配器的列表。

  3. 选择“ 静态 DotNetFile”,然后单击“ 下一步”。

    即会显示由该适配器公开的服务组织。

  4. 展开 “服务组织”和“ 医疗保健”,然后单击“ 管理”。

    请注意 ,“资格” 的显示方式与其他节点不同。 “资格” 是可以选择的服务节点。 其他节点为组织节点,不对任何特定服务进行说明。

  5. 选择“ 资格” 节点,然后单击“ 完成”。

    BizTalk 即会将一个 .odx 文件和一个 .xsd 文件导入到项目中。

    现在你即可在 BizTalk 项目的计划中使用从适配器导入的架构、PortType、操作和 MessageType。

此示例中使用的类或方法

接口:IBaseMessage、IPropertyBag、IBTTransportProxy

类(来自基本适配器):AsyncTransmitterEndpoint、AsyncTransmitter、BatchMessage、ControlledTermination、ReceiverEndpoint、DotNetFileCommonProperties、BatchOperationType

注释

完成示例适配器后,可以修改示例适配器以创建自定义静态或动态适配器 有关详细信息,请参阅 适配器 Design-Time 配置

另请参阅

适配器示例 - 用法
注册适配器