文件适配器示例以 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 文件 | DESCRIPTION |
---|---|
\BizTalk 项目文件 | 包含用于测试示例适配器的适配器线束项目。 |
\Design Time 文件 | 包含设计时和管理项目(AdapterManagement.csproj)。 |
\Runtime 文件 | 包含用于运行时文件复制的接收和传输项目(DotNetFile.csproj)。 |
DynamicAdapterManagement.reg | 注册示例动态适配器。 |
Instance.xml | 用于通过文件适配器传输的示例文件。 |
StaticAdapterManagement.reg | 注册示例静态适配器。 |
\BizTalk 项目\适配器 框架 文件 | DESCRIPTION |
---|---|
AdapterHarness.odx, AdapterHarness.sln, AdapterHarnessProject.btproj | 为 BizTalk 项目提供项目、解决方案和相关文件。 |
mySchema.xsd | 提供适配器接收部分的 Instance.xml 架构,符合业务流程编排的预期,以及业务流程编排交给适配器发送部分的 Instance.xml 架构。 |
\Design Time\Adapter Management 文件 | DESCRIPTION |
---|---|
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 文件 | DESCRIPTION |
---|---|
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 文件 | DESCRIPTION |
---|---|
Adapter.cs、AdapterException.cs、AsyncTransmitter.cs、batch.cs、ConfigProperties.cs、ControlledTermination.cs、IManageEndpoints.cs、Receiver.cs、ReceiverEndpoint.cs | 提供构成基础适配器的类。 可以使用这些来创建自己的适配器。 |
如何使用此示例
使用示例文件适配器作为用于创建其他自定义适配器的模板。
生成此示例
重要
如果 BizTalk 安装为 64 位,或者修改安装位置,则需要相应地更改 OutboundAssemblyPath、InboundAssemblyPath、AdapterMgmtAssemblyPath。
使用以下过程生成和初始化文件适配器示例。
为 DotNetFileAdapter 项目和基本适配器项目创建强名称键
启动 Visual Studio 命令提示符。
注释
以管理员身份运行命令提示符。
将当前目录更改为 <Samples Path>\AdaptersDevelopment\BaseAdapter\v1.0.2 目录。
在命令提示符下,键入 sn –k BaseAdapter.snk ,然后按 Enter。 由于以前运行过其他示例,此 .snk 文件可能已存在。 如果是这样,可以转到步骤 4 并跳过此步骤。
将当前目录更改为 <Samples Path>\AdaptersDevelopment\File Adapter\Runtime 目录。
在命令提示符下,键入 sn –k DotNetFileAdapter.snk ,然后按 Enter。
在命令提示符下,键入 退出 ,然后按 Enter 关闭命令提示符窗口。
构建接收机运行时项目
单击“ 开始”,指向 “所有程序”,指向 “附件”,然后单击“ Windows 资源管理器”。
导航到 <Samples Path>“\AdaptersDevelopment\File Adapter\Runtime” 目录,然后双击 DotNetFile.sln。
若要重新生成适配器接收器运行时项目,请在解决方案资源管理器中右键单击 DotNetFile,然后单击“ 重新生成”。
在“ 文件 ”菜单中,单击“ 退出 ”关闭 Visual Studio。
构建适配器设计时项目
在 Windows 资源管理器中<,导航到示例路径>“\AdaptersDevelopment\File Adapter\Design Time\Adapter Management”目录,然后双击AdapterManagement.sln。
在解决方案资源管理器中,右键单击AdapterManagement,然后单击重新生成。
在“ 文件 ”菜单中,单击“ 退出 ”关闭 Visual Studio。
注册示例静态适配器
在 Windows 资源管理器中<,导航到示例路径>“\AdaptersDevelopment\File Adapter”目录。
若要将示例适配器添加到注册表,请双击 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 安装,或者如果在运行 64 位版本的 Windows 的计算机上安装 BizTalk Server,则必须使用相应路径修改文件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\ 。
在 “注册表编辑器 ”对话框中,单击“ 是 ”将示例适配器添加到注册表,然后单击“ 确定”。
若要关闭 Windows 资源管理器,请在 “文件 ”菜单上单击“ 关闭”。
安装示例静态适配器
单击“ 开始”,选择 “所有程序”,选择 Microsoft BizTalk Server 20xx,然后选择 “BizTalk Server 管理”。
在 BizTalk Server 管理控制台中,单击以展开 BizTalk Server 管理,单击以展开 BizTalk 组,然后单击以展开 平台设置。
右键单击“ 适配器”,单击“ 新建”,然后单击“ 适配器”。
在 “添加适配器 ”对话框中,执行以下作。
用这个 要执行的操作 名称 键入 Static。 适配器 从下拉列表中选择 静态 DotNetFile 。 注释 类型 示例适配器。 单击 “确定” 。
静态适配器现在显示在 BizTalk 管理控制台右侧窗口中的适配器列表中。
停止并重启主机实例
单击“ 开始”,选择“ 所有程序”,选择 Microsoft BizTalk Server 20xx,然后选择 “BizTalk Server 管理”。
在 BizTalk Server 管理控制台中,单击以展开 BizTalk Server 管理,单击以展开 BizTalk 组,单击以展开 平台设置 ,然后单击 “主机实例”。 在右窗格中选择 BizTalkServerApplication。
在结果窗格中,右键单击主机实例(通常为计算机名称),然后单击“ 重启”。
运行此示例
运行文件适配器示例
单击“ 开始”,指向 “所有程序”,指向 “附件”,然后单击“ Windows 资源管理器”。
在 BizTalk Server 安装驱动器上创建以下文件夹:
<驱动器>:\Temp
<drive>:\Temp\Send
<驱动器>:\Temp\Receive
若要关闭 Windows 资源管理器,请在 “文件 ”菜单上单击“ 关闭”。
单击“ 开始”,指向 “所有程序”,指向 Microsoft BizTalk Server 20xx,然后单击 “BizTalk Server 管理”。
右键单击 BizTalk Server 管理 节点,然后选择“ 连接到现有组”。
在“ 连接到现有 BizTalk Server 配置数据库 ”对话框中,执行以下作。
注释
BizTalk 管理数据库也称为 BizTalk 配置数据库。
用这个 要执行的操作 SQL Server 输入 。(句号)。 数据库 选择配置向导创建的 BizTalk 管理数据库的名称。 配置向导使用的默认数据库名称是 BizTalkMgmtDb。 单击 “确定” 。
在 BizTalk Server 管理控制台中展开 BizTalk 组[服务器名称] 节点,展开 应用程序 节点,展开 BizTalk 应用程序 1 节点。
右键单击 “发送端口 ”节点,然后单击“ 新建”,选择 “静态 One-Way 发送端口”,然后单击“ 确定”。
在“ 发送端口属性 ”对话框中,选择“ 常规”,然后执行下列作。
用这个 要执行的操作 名称 类型 AdapterSend。 传输类型 从下拉列表中选择 “静态 ”,然后单击“ 配置”。
- 在 “目录 ”框中,键入 <drive>:\Temp\Send。
- 在 “文件模式 ”框中,选择“ CreateNew”。
- 在 “文件名 ”框中,键入 %MessageID%.xml。
- 单击“ 确定”。
- URI 字段应显示 <驱动器>:\Temp\Send\%MessageID%.xml。发送管道 选择 PassThruTransmit (Microsoft.BizTalk.DefaultPipelines.PassThruTransmit),然后单击“ 确定”。 在 BizTalk 应用程序 1 节点下,单击 “接收端口”,然后选择“ 新建/One-Way 接收端口”。
在“ 新建接收端口 ”对话框中的 “指定接收端口类型 ”框中,从下拉列表中选择 单向接收端口 ,然后单击“ 确定”。
在 “接收端口属性 ”对话框中的 “名称 ”框中,键入 AdapterReceive,然后单击“ 确定”。
在 BizTalk 应用程序 1 节点下,右键单击 “接收位置”,然后选择“ 新建/单向接收位置”。
在 “选择接收端口 ”对话框中,选择 AdapterReceive ,然后单击“ 确定”。
在“ 接收位置属性 ”对话框中,执行以下作。
用这个 要执行的操作 名称 Type AdapterReceiveLocation 传输类型 从下拉列表中选择 “静态 ”,然后点击“ 配置 ”以访问这些剩余属性。 URI - 单击省略号按钮(...)。
- 在 “批处理中的文件数 ”框中,键入 20。
- 在 “目录 ”框中,键入 <drive>:\Temp\Receive。
- 确保 文件掩码 属性设置为 *.xml。
- 在 “轮询间隔 ”框中,键入 5,然后单击“ 确定”。
- 确保 URI 标签包含 <驱动器>:\Temp\Receive\*.xml。接收处理程序 从下拉列表中选择 BizTalkServerApplication 。 接收管道 从下拉列表中选择 XMLReceive 。 单击 “确定” 。
继续 生成、部署和绑定示例适配器。
生成、部署和绑定示例适配器
在适配器上线之前,必须生成项目,将业务流程与端口绑定,然后登记适配器。
为静态适配器创建强名称密钥
启动 Visual Studio 命令提示符。
在命令提示符下,将当前目录更改为 <Samples Path>\AdaptersDevelopment\File Adapter\BizTalk Project\Adapter Harness 目录。
在命令提示符下,键入 sn –k AdapterHarness.snk,然后按 PressENTER。
单击 “确定” 。
构建 Adapter Harness 项目
- 在解决方案资源管理器中,右键单击 AdapterHarnessProject,然后单击“ 重新生成”。
部署 Adapter Harness 项目
在解决方案资源管理器中,当项目已重新生成时,右键单击 AdapterHarnessProject,然后单击“ 部署”。
在 BizTalk Server 管理控制台中,选择已部署的项目,然后单击“ 刷新”。
将业务流程与端口绑定
在 BizTalk Server 管理控制台中,在相应的 BizTalk Server 应用程序下,展开 编排 节点。
右键单击 AdapterHarness.AdapterHarnessType,然后单击“ 绑定”。
在 “端口绑定属性 - AdapterHarness.AdapterHarnessType - 绑定配置 ”对话框中,执行以下作。
用这个 要执行的操作 AdapterFileReceivePort 从下拉列表中选择 AdapterReceive 。 AdapterFileSendPort 从下拉列表中选择 AdapterSend 。 在左窗格中,单击“ 主机”。
在 “主机 ”框中,从下拉列表中选择 BizTalkServerApplication ,然后单击“ 确定”。
继续 管理示例适配器。
管理示例适配器
在 BizTalk 管理控制台中完成示例适配器的管理任务。
管理文件适配器示例
单击“ 开始”,指向 “所有程序”,指向 Microsoft BizTalk Server 20xx,然后单击 “BizTalk Server 管理”。
在左窗格中,单击以展开 应用程序,单击以展开 BizTalk 应用程序 1,然后单击 “接收位置”。
确保 AdapterReceive 状态 已启用。
如果状态未 启用,请在右窗格中右键单击 AdapterReceive ,然后单击“ 启用”。
在左窗格中,单击业务流程编排,并确保AdapterHarness.AdapterHarnessType已加入。 右键单击 AdapterHarness.AdapterHarnessType,然后单击 Enlist (如果已登记 AdapterHarness.AdapterHarnessType, 则 Enlist 菜单选项不可用)。
右键单击 AdapterHarness.AdapterHarnessType 并选择 “启动”。 此编排的状态应更改为 正在运行。
继续 测试示例适配器。
测试示例适配器
部署示例适配器后,必须停止并重启主机实例。 在将示例适配器放入生产环境之前,测试示例适配器至关重要。
停止并重启主机实例
在 BizTalk Server 管理控制台 中,单击以展开 BizTalk Server 管理,单击以展开 BizTalk 组,单击以展开 平台设置 ,然后单击 “主机实例”。 在右窗格中选择 BizTalkServerApplication。
右键单击主机实例(通常为计算机名称),然后单击“ 停止”。
主机实例的状态更改为 “已停止”。
右键单击主机实例,然后单击“ 启动”。
主机实例的状态更改为 “正在运行”。
测试示例静态适配器运行时
在 Windows 资源管理器中<,导航到 Samples Path>\AdaptersDevelopment\File Adapter 目录,并将 InstanceXML.xml 文件复制到剪贴板。
导航到 <drive>:\Temp\Receive 并将 Instance.xml 文件粘贴到文件夹中。
如果传输和接收适配器正常工作,该文件应从 <drive>:\Temp\Receive 文件夹移动到 <drive>:\Temp\Send 文件夹。
测试用于样本静态适配器的添加适配器向导功能
在 Visual Studio 的解决方案资源管理器中,右键单击 AdapterHarnessProject,指向 “添加”,然后单击“ 添加生成的项”。
在 “添加生成的项 - AdapterHarnessProject ”对话框中,单击“ 添加适配器元数据”,然后单击“ 打开”。
此时会显示已注册适配器的列表。
选择 静态 DotNetFile,然后单击“ 下一步”。
将显示适配器公开的服务组织。
展开 服务组织、 医疗保健,然后单击“ 管理”。
请注意, 资格 与其他节点的显示方式不同。 资格节点 是您可以选择的服务节点。 其他节点是未描述任何特定服务的组织节点。
选择 “资格 ”节点,然后单击“ 完成”。
BizTalk 将 .odx 文件和 .xsd 文件导入到项目中。
现在可以在 BizTalk 项目的计划中使用从适配器导入的架构、PortTypes、操作和 MessageTypes。
此示例中使用的类或方法
接口:IBaseMessage、IPropertyBag、IBTTransportProxy
类(来自基适配器):AsyncTransmitterEndpoint、AsyncTransmitter、BatchMessage、ControlledTermination、ReceiverEndpoint、DotNetFileCommonProperties、BatchOperationType
注释
完成示例适配器后,可以修改示例适配器以创建自定义静态或动态适配器。有关详细信息,请参阅 适配器 Design-Time 配置。