如何:使用 ESB 接入点验证消息

目标

本部分演示如何配置 ESB 调度程序反汇编管道组件,以便对提交到 ESB on-ramp 的 XML 消息执行消息验证。

在本操作方法主题中,你将完成以下步骤:

  • 创建使用 RouteySelectReceiveXml 管道的 ESB on-ramp。

  • 配置 ESB 调度程序反汇编管道组件以验证消息内容。

  • 配置路线选择器管道组件以解析相应的行程。

  • 使用有效消息和无效消息测试消息验证。

必备条件

本操作方法主题中的过程要求完成 开发活动的先决条件

开始之前

在执行本操作指南主题后面的步骤之前,请完成以下任务:

  • 创建无效的测试消息。

  • (DSL) 模型创建特定于 ESB 路线域的语言。

  • 配置行程的属性。

  • 定义行程的结构。

  • 将模型导出到行程数据库。

    以下过程介绍了如何执行其中每个操作。

创建无效测试消息

  1. 在 Windows 资源管理器中,浏览到 C:\HowTos。

  2. 创建 NAOrderDoc.xml 的副本,然后将副本重命名为 Invalid.xml。

  3. 在记事本中,打开 Invalid.xml。

  4. ns0:requestType>10</ns0:requestType> 更改为<< ns0:requestType>TEN</ns0:requestType>

  5. Invalid.xml 另存为 UTF-8,然后关闭记事本。

    注意

    通过将此元素的数值更改为文本,根据架构,消息将不再有效。

创建 ESB 路线 DSL 模型

  1. 在 Visual Studio 中,打开 C:\HowTos\Patterns\Patterns.sln。

  2. 在“解决方案资源管理器”中,右键单击“行程”“库”,指向“添加”,然后单击“新建行程”。

  3. “添加新项”对话框中,在“名称”框中键入“验证”,然后单击“添加”。

配置行程的属性

  1. 在 Visual Studio 中,单击 Validation.itinerary 的设计图面。 在“验证属性窗口中,配置以下属性:

    1. “模型导出程序 ”下拉列表中,单击“ 数据库路线导出程序”。

    2. 单击“ 行程数据库 ”属性旁边的省略号按钮 (...) 。

    3. 在“连接属性”对话框中,选择承载路线存储库数据库的SQL Server,然后指定数据库的名称 (默认名称为 EsbItineraryDb) 。

  2. “行程状态” 下拉列表中,单击“ 已部署”。

    注意

    此步骤使你能够将行程导出到中央存储库;收到消息时,可以从此存储库选择和附加路线。 稍后将配置路线选择器管道组件,以使用静态冲突解决程序从此存储库中选择适当的路线。

定义行程的结构

  1. 从“工具箱”中,将 On-Ramp 模型元素拖到设计图面。 在 OnRamp1 属性窗口中,配置以下属性:

    1. 单击 Name 属性,然后键入 ReceiveNAOrder

    2. “扩展程序 ”下拉列表中,单击“ On-Ramp ESB 扩展程序”。

    3. “BizTalk 应用程序 ”下拉列表中,单击“ Microsoft.Practices.ESB”。

    4. “接收端口 ”下拉列表中,单击“ OnRamp.行程”。

  2. 从“工具箱”中,将 Off-Ramp 模型元素拖到设计图面上,然后将其置于现有模型元素的右侧。 在 OffRamp1 属性窗口中,配置以下属性:

    1. 单击 Name 属性,然后键入 SendNAOrder

    2. “扩展程序 ”下拉列表中,单击“ 关闭渐变 ESB 扩展程序”。

    3. “BizTalk 应用程序 ”下拉列表中,单击“ GlobalBank.ESB”。

    4. “发送端口 ”下拉列表中,单击“ DynamicResolutionOneWay”。

  3. 从“工具箱”中,将 “路线服务 ”模型元素拖动到设计图面,然后将其放置在 ReceiveNAOrder 模型元素和 SendNAOrder 模型元素之间。 在“行程服务1”属性窗口中,配置以下属性:

    1. 单击 Name 属性,然后键入 SendPortFilter

    2. “行程服务扩展程序 ”下拉列表中,单击“ 非斜坡扩展程序”。

    3. “Off-Ramp ”下拉列表中,展开“ SendNAOrder”,然后单击“ 发送处理程序”。

  4. 右键单击 SendPortFilter 元素的 Resolver 集合,然后单击“添加新冲突解决程序”。 在 Resolver1 属性窗口中,配置以下属性:

    1. 单击 Name 属性,然后键入 ConfigureOffRamp

    2. “冲突解决程序实现” 下拉列表中,单击“ 静态冲突解决程序扩展”。

    3. “传输名称” 下拉列表中,单击“ 文件”。

    4. 单击“ 传输位置” 属性,然后键入 C:\HowTos\Out\Validated%MessageID%.xml

  5. 在“工具箱”中,单击“ 连接器”。 将连接从 ReceiveNAOrder 模型元素拖动到 SendPortFilter 模型元素。

  6. 在“工具箱”中,单击“ 连接器”。 将连接从 SendPortFilter 模型元素拖动到 SendNAOrder 模型元素。

将模型导出到行程数据库

  1. 在 Visual Studio 中,右键单击 “验证 ”路线的设计图面,然后单击“ 导出模型”。

    注意

    行程已导出到行程数据库,现在可以由路线选择器管道组件使用。

  2. 保存所有项目项目。

步骤

创建和配置 ESB on-ramp

  1. 单击任务栏上的“开始”,依次指向“所有程序”、“BizTalk Server”,然后单击“BizTalk Server管理”。

  2. 在BizTalk Server管理控制台中,依次展开“BizTalk 组”、“应用程序”和“Microsoft.Practices.ESB”。

  3. 右键单击“ 接收位置”,指向 “新建”,然后单击“ 单向接收位置”。

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

  5. 在“接收位置属性”对话框中的“名称”框中键入 OnRamp.Itinerary.HowTo

  6. “类型 ”下拉列表中,单击“ 文件”,然后单击“ 配置”。

  7. 在“文件传输属性”对话框中的“接收文件夹”框中键入 C:\HowTos\DropFolder,然后单击“确定”。

配置 on-ramp 以执行消息验证

  1. 在“ 接收位置属性 ”对话框的“ 接收管道 ”下拉列表中,单击“ 行程”“选择”ReceiveXml“,然后单击省略号按钮 (...) 。

  2. 使用 “ 配置管道 ” 对话框可以配置以下 XML 反汇编程序 组件属性:

    1. 展开 GlobalBank.Esb 应用程序,然后单击“ 架构”。 右键单击 GlobalBank.ESB.DynamicResolution.Schemas.NAOrderDoc,然后单击“属性”。 复制 “名称”“程序集” 属性,并将其粘贴到文本文件中。

    2. “反汇编”组件中,单击“ValidateDocument”下拉列表中的“True”。

    3. 单击 DocumentSpecNames 属性,然后键入架构的完全限定名称。 完全限定的名称以 名称开头,后跟一个逗号和步骤 a 中提取的程序集信息。 以下是一个示例:

      GlobalBank.ESB.DynamicResolution.Schemas.NAOrderDoc, GlobalBank.ESB.DynamicResolution.Schemas, Version=2.0.0.0, Culture=neutral, PublicKeyToken=c2c8b2b87f54180a

      注意

      这是要验证的架构的完全限定名称;它由架构名称和四个程序集属性组成:程序集名称、版本、区域性和公钥令牌。 允许多个值;使用管道 (分隔多个架构 |) 符号。

配置路线选择器管道组件

  1. 在“ 配置管道 ”对话框中,配置以下 路线选择器 组件属性:

    1. 单击 “行程”“FactKey” 属性,然后键入 Resolver.Itinerary

    2. 单击 ResolverConnectionString 属性,然后键入 ITINERARY:\\name=Validation;

    3. 单击“ 确定 ”关闭“ 配置管道 ”对话框。

  2. 单击 “确定” 关闭“ 接收位置属性 ”对话框。

  3. 在BizTalk Server管理控制台中,右键单击“OnRamp.Itinerary.HowTo”接收位置,然后单击“启用”。

测试消息验证和行程选择

  1. 在 Windows 资源管理器中,浏览到 C:\HowTos。

  2. 复制 (不会将) NAOrderDoc.xml 移动到 DropFolder 文件夹。

  3. 浏览到 C:\HowTos\Out。验证 Validated%MessageID%.xml 是否已写入目录。

    注意

    有效消息按预期完成了其基于行程的路由。

  4. 从 Out 文件夹中删除 Validated%MessageID%.xml。

  5. 在 Windows 资源管理器中,浏览到 C:\HowTos。

  6. 复制 (不会将) Invalid.xml 移动到 DropFolder 文件夹。

  7. 浏览到 C:\HowTos\Out。验证是否未传递任何新邮件。

    注意

    无法验证消息;因此,无法完成基于行程的路由。

  8. 单击任务栏上的“开始”,指向“管理工具”,然后单击“事件查看器”。

  9. 在“事件查看器”中,展开“Windows 日志”,然后单击“应用程序”。

  10. 找到源BizTalk Server事件 ID5719 的最近事件。

    注意

    无效消息的提交和失败导致应用程序事件日志出现异常条目。

  11. 在BizTalk Server管理控制台中,右键单击“OnRamp.行程.HowTo 接收位置”,然后单击“禁用”。

  12. 禁用 OnRamp.Itinerary.HowTo 接收位置后,右键单击它,然后单击“ 删除”。 在 “确认删除接收位置 ”对话框中,单击“ ”。

其他资源

有关详细信息,请参阅下列相关主题: