目标
本部分演示如何配置 ESB 调度程序反汇编管道组件,以对提交到 ESB 的 XML 消息执行消息验证。
在本指南中,你将完成以下步骤:
创建使用 ItinerarySelectReceiveXml 管道的 ESB on-ramp。
配置 ESB 调度程序反汇编管道组件以验证消息内容。
配置“路线选择器”管道组件以解决相应的行程。
使用有效消息和无效消息测试消息验证。
先决条件
本作指南主题中的过程需要完成 开发活动的先决条件。
在您开始之前
请先完成下列任务,之后再执行本指南后面的步骤。
创建无效的测试消息。
创建特定于域的 ESB 行程语言 (DSL) 模型。
配置行程的属性。
定义行程的结构。
将模型导出到行程数据库。
以下过程介绍如何执行所有操作。
创建无效的测试消息
在 Windows 资源管理器中,浏览到 C:\HowTos。
创建 NAOrderDoc.xml的副本,然后重命名副本 Invalid.xml。
在记事本中,打开 Invalid.xml。
将 ns0:requestType>10</ns0:requestType> 更改为<<ns0:requestType>TEN</ns0:requestType>。
将 Invalid.xml 另存为 UTF-8,然后关闭记事本。
注释
通过将此元素的数值更改为文本,消息将不再根据架构有效。
创建 ESB 行程 DSL 模型
在 Visual Studio 中,打开 C:\HowTos\Patterns\Patterns.sln。
在解决方案资源管理器中,右键单击 “行程库”,指向 “添加”,然后单击“ 新建路线”。
在“添加新项”对话框中,在“名称”框中键入“验证”,然后单击“添加”。
配置行程的属性
在 Visual Studio 中,单击 Validation.行程的设计界面。 在 “验证 属性”窗口中,配置以下属性:
在 “模型导出程序 ”下拉列表中,单击 “数据库行程导出程序”。
单击 “行程数据库 ”属性旁边的省略号按钮(...)。
在“ 连接属性 ”对话框中,选择承载行程存储库数据库的 SQL Server,然后指定数据库的名称(默认名称为 EsbItineraryDb)。
在“行程状态”下拉列表中,单击“已部署”。
注释
此步骤使你可以将行程导出到中央存储库;收到消息时,可以从此存储库中选择并附加行程。 稍后将路线选择器管道组件配置为使用静态解析程序从此存储库中选择适当的行程。
定义行程的结构
从工具箱中,将 On-Ramp 模型元素拖到设计图面。 在 OnRamp1 “属性”窗口中,配置以下属性:
单击 Name 属性,然后键入 ReceiveNAOrder。
在 “扩展程序 ”下拉列表中,单击“ On-Ramp ESB 扩展程序”。
在 BizTalk 应用程序 下拉列表中,单击 Microsoft.Practices.ESB。
在接收端口下拉列表中,单击OnRamp.Itinerary。
从工具箱中,将 Off-Ramp 模型元素拖到设计图面,然后将其置于现有模型元素的右侧。 在 OffRamp1 “属性”窗口中,配置以下属性:
单击 Name 属性,然后键入 SendNAOrder。
在 “扩展程序 ”下拉列表中,单击 Off-Ramp ESB 扩展程序。
在 BizTalk 应用程序 下拉列表中,单击 GlobalBank.ESB。
在 “发送端口 ”下拉列表中,单击 DynamicResolutionOneWay。
从工具箱中,将“路线服务”模型元素拖到设计图面,然后将其放在 ReceiveNAOrder 模型元素和 SendNAOrder 模型元素之间。 在 “ItineraryService1 属性”窗口中,配置以下属性:
单击 Name 属性,然后键入 SendPortFilter。
在 “行程服务扩展程序 ”下拉列表中,单击 Off-Ramp 扩展程序。
在 Off-Ramp 下拉列表中,展开 SendNAOrder,然后单击 发送处理程序。
右键单击 SendPortFilter 元素的 Resolver 集合,然后单击“添加新冲突解决程序”。 在 Resolver1 “属性”窗口中,配置以下属性:
单击 Name 属性,然后键入 ConfigureOffRamp。
在 “解析程序实现 ”下拉列表中,单击 “静态解析程序扩展”。
在 “传输名称 ”下拉列表中,单击“ 文件”。
单击 “传输位置” 属性,然后键入 C:\HowTos\Out\Validated%MessageID%.xml。
在工具箱中,单击“ 连接器”。 将 ReceiveNAOrder 模型元素的连接拖到 SendPortFilter 模型元素。
在工具箱中,单击“ 连接器”。 将连接从 SendPortFilter 模型元素拖动到 SendNAOrder 模型元素。
将模型导出到行程数据库
在 Visual Studio 中,右键单击 验证 路线的设计图面,然后单击“ 导出模型”。
注释
行程已导出到行程数据库,现在可以由“行程选择器”管道组件使用。
保存所有项目工件。
步骤
创建和配置 ESB 入门配置
单击任务栏上的“ 开始 ”,指向 “所有程序”,指向 BizTalk Server,然后单击“ BizTalk Server 管理”。
在 BizTalk Server 管理控制台中,展开 BizTalk 组、 应用程序,然后展开 Microsoft.Practices.ESB。
右键单击 “接收位置”,指向“ 新建”,然后单击 “单向接收位置”。
在 “选择接收端口 ”对话框中,单击“ OnRamp.行程”,然后单击“ 确定”。
在“接收位置属性”对话框中,在“名称”框中键入 OnRamp.Itinerary.HowTo。
在 “类型 ”下拉列表中,单击“ 文件”,然后单击“ 配置”。
在“文件传输属性”对话框中,在“接收”文件夹框中键入 C:\HowTos\DropFolder,然后单击“确定”。
配置入口以执行消息验证
在 “接收位置属性” 对话框中的 “接收管道” 下拉列表中,单击 ItinerarySelectReceiveXml,然后单击省略号按钮(...)。
使用“ 配置管道 ”对话框配置以下 XML 反汇编程序 组件属性:
展开 GlobalBank.Esb 应用程序,然后单击“ 架构”。 右键单击 GlobalBank.ESB.DynamicResolution.Schemas.NAOrderDoc,然后单击“ 属性”。 复制名称和程序集属性并将其粘贴到文本文件中。
在反汇编组件中,单击 ValidateDocument 下拉列表中的 True。
单击 DocumentSpecNames 属性,然后键入架构的完全限定名称。 完全限定名称以名称开头,后跟逗号,然后是步骤 a 中提取的程序集信息。 示例如下:
GlobalBank.ESB.DynamicResolution.Schemas.NAOrderDoc,GlobalBank.ESB.DynamicResolution.Schemas,Version=2.0.0.0,Culture=neutral,PublicKeyToken=c2c8b2b87f54180a
注释
这是要验证的架构的完全限定名称;它由架构名称和四个程序集属性组成:程序集名称、版本、区域性和公钥令牌。 允许多个值;使用管道 (|) 符号分隔多个架构。
配置路线选择器管道组件
在“ 配置管道 ”对话框中,配置以下 路线选择器 组件属性:
单击 “ItineraryFactKey ”属性,然后键入 Resolver.Itinerary。
单击 ResolverConnectionString 属性,然后键入 ITINERARY:\\name=Validation;。
单击“ 确定 ”关闭“ 配置管道 ”对话框。
单击“ 确定 ”关闭“ 接收位置属性 ”对话框。
在 BizTalk Server 管理控制台中,右键单击 OnRamp.Itinerary.HowTo 接收位置,然后单击“ 启用”。
测试邮件验证和行程选择
在 Windows 资源管理器中,浏览到 C:\HowTos。
复制(请勿移动)NAOrderDoc.xml 到 DropFolder 文件夹。
浏览到 C:\HowTos\Out. Verify that Validated%MessageID%.xml 已写入目录。
注释
有效消息按预期完成其基于路线的路由。
从 Out 文件夹中删除已验证%MessageID%.xml。
在 Windows 资源管理器中,浏览到 C:\HowTos。
复制(请勿移动)Invalid.xml 到 DropFolder 文件夹。
导航到 C:\HowTos\Out。验证是否没有传递任何新消息。
注释
无法验证消息;因此,无法完成基于路线的路由。
单击任务栏上的“ 开始 ”,指向 管理工具,然后单击“ 事件查看器”。
在事件查看器中,展开 Windows 日志,然后单击 “应用程序”。
找到 源 为 BizTalk Server 且 事件 ID 为 5719 的最近事件。
注释
无效消息的提交和失败导致应用程序事件日志出现异常条目。
在 BizTalk Server 管理控制台中,右键单击 OnRamp.Itinerary.HowTo 接收位置,然后单击“ 禁用”。
禁用 OnRamp.Itinerary.HowTo 接收位置后,右键单击该位置,然后单击“删除”。 在“ 确认删除接收位置 ”对话框中,单击“ 是”。
其他资源
有关详细信息,请参阅下列相关主题: