CustomComponent(BizTalk Server 示例)
CustomComponent 示例演示如何创建和使用修改流消息的自定义管道组件。 本示例还演示如何在管道设计器中对自定义管道组件进行配置。
本示例的用途
本示例实现了一个可将字符串作为前缀或后缀添加到输入消息中的自定义管道组件。 BizTalk Server 以流模式处理消息,也就是说整个消息永远不加载到内存中。 使用以下一系列步骤演示该自定义管道组件:
BizTalk 从位于特定文件夹的某个文件中检索文本消息。
通过包含 FixMsg 自定义管道组件的接收管道发送文本消息。 您将该组件配置为在消息的开始处插入字符串。
通过包含 FixMsg 自定义管道组件的发送管道发送得到的文本消息。 您将该组件配置为将字符串附加到消息的末尾。
BizTalk Server 将得到的文本消息写入位于特定文件夹的文件中。
本示例所在的位置
<示例路径>\Pipelines\CustomComponent\
下表显示了本示例中的文件及其用途说明:
文件 | 说明 |
---|---|
Cleanup.bat | 用于取消部署程序集并从全局程序集缓存 (GAC) 删除这些程序集。 删除发送和接收端口。 根据需要删除 Microsoft Internet 信息服务 (IIS) 虚拟目录。 |
Input.txt | 示例输入文件。 |
Setup.bat | 用于生成和初始化本示例。 |
在 \FixMsg 文件夹中: AssemblyInfo.cs、FixMsg.csproj、FixMsg.sln |
用于本示例的自定义管道组件部分的项目、解决方案和程序集信息文件。 |
在 \FixMsg 文件夹中: FixMsg.cs |
实现管道组件接口。 |
在 \FixMsg 文件夹中: FixMsgStream.cs |
实现 System.IO.Stream 类的包装器,从而启用数据的流处理。 |
在 \FixMsg 文件夹中: FixMsgDescription.cs |
提供用于在管道设计器中访问和显示组件 UI 资源的方法。 |
在 \FixMsg 文件夹中: FixMsg.resx |
包含属性说明、图标和错误消息。 |
在 \PipelineComponentSample 文件夹中: PipelineComponentSample.btproj、PipelineComponentSample.sln |
用于本示例的 BizTalk 项目部分的项目和解决方案文件。 |
在 \PipelineComponentSample 文件夹中: PipelineComponentSampleBinding.xml |
用于如端口绑定之类的自动化设置。 |
在 \PipelineComponentSample 文件夹中: FixMsgReceivePipeline.btp、FixMsgSendPipeline.btp |
包含 FixMsg 自定义管道组件的 BizTalk Server 管道,分别用于接收和发送管道。 |
生成和初始化此示例
生成并初始化 CustomComponent 示例
在命令窗口中,导航到下面的文件夹:
<示例路径>\Pipelines\CustomComponent
运行 Setup.bat 文件,该文件将执行以下操作:
在以下文件夹中,为本示例创建输入 (In) 和输出 (Out) 文件夹:
<示例路径>\Pipelines\CustomComponent
编译并部署本示例的 Visual Studio 项目。
创建并绑定 BizTalk Server 接收位置、发送和接收端口。
注意
在创建并绑定端口时,本示例将显示以下警告:
Warning: Receive handler not specified for receive location "PCReceiveLocation"; updating with first receive handler with matching transport type.
Warning: Host not specified for orchestration "CustomComponent"; updating with first available host.
可以安全地忽略这些警告。 (为了适应用户安装中可能存在的命名差异,绑定文件中省略了主机名和接收处理程序。)
启用接收位置并启动发送端口。
注意
在尝试运行本示例前,您应确认在生成和初始化过程中 BizTalk Server 未报告任何错误。
注意
如果选择打开并生成此示例中的项目而不运行文件 Setup.bat,则必须首先使用.NET Framework强名称实用工具 (sn.exe) 创建强名称密钥对。 使用该密钥对可以对生成的程序集进行签名。
注意
若要撤消 Setup.bat 所做的更改,必须首先从 BizTalk Server 管理 MMC 控制台停止并重新启动主机实例。 然后运行 Cleanup.bat。 第二次运行 Setup.bat 之前,必须运行 Cleanup.bat。
运行本示例
运行 CustomComponent 示例
将文本文件 Input.txt 的副本粘贴到 In 文件夹中。
观察在“Out”文件夹中创建的文本文件。此文件包含文件的内容 Input.txt,以及接收管道 () 在开头插入的其他文本,以及发送管道) 在末尾 (插入的其他文本。 此文件的名称的格式为 <MessageID>.xml,其中 <MessageID> 是生成用于唯一标识消息的 GUID。
注释
通过执行以下步骤,可以在管道设计器中查看预配置管道:
在解决方案资源管理器中,双击 ReceivePipeline.btp 以便在管道设计器中打开该接收管道。 观察 FixMsg 组件是否放置在接收管道的 “验证” 阶段。
在设计图面上的 “验证” 阶段中单击“FixMsg”组件。 在“属性”窗口中,可以看到该管道组件的配置属性。 请注意, PrependData 属性设置为 “数据”,以在接收管道字符串中预先添加。
在解决方案资源管理器中,双击 SendPipeline.btp 以便在管道设计器中打开该发送管道。 观察 FixMsg 组件是否放置在发送管道的 预汇编 阶段。
在设计图面上的 预装配 阶段中单击 FixMsg 组件。 请注意, AppendData 属性设置为 Data 以在发送管道字符串中追加。