如何:创建路线以便使用 LDAP 查询动态将消息路由至电子邮件地址

目标

本部分演示如何创建通过 LDAP (轻型目录访问协议) 查询电子邮件地址的行程,然后使用BizTalk Server SMTP 适配器将电子邮件发送到已解析的终结点。

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

  • 创建行程传送单,以使用 LDAP 查询动态路由消息。

  • 使用行程测试客户端示例应用程序测试行程。

先决条件

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

要完成本部分的计算机必须配置并运行 Microsoft Active Directory 目录服务, (不需要计算机是域控制器,但必须连接到域) 。 此外,必须配置并运行 SMTP 服务器;为了测试本操作方法主题的结果,你必须有一个客户端,用于检查 ESB 发送的电子邮件。

本部分中的说明假定一个名为 Global Bank 的组织,其域为 globalbank.com,其 Active Directory 组织单位名为 Employees,其中包含一个名为 John Evans 的用户,其个人资料 ((如) ) johne@globalbank.com 中具有有效的电子邮件地址。 没有必要复制这些环境因素:但是,为了在环境中重新创建此实现,请考虑到这些因素,并根据需要进行替换。

步骤

创建 ESB 行程域特定语言 (DSL) 模型

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

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

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

配置行程的属性

  1. 在 Visual Studio 中,单击 LdapResolution.行程的设计图面。 在 LdapResolution 属性窗口中,配置以下属性:

    1. “模型导出程序 ”下拉列表中,单击“ XML 行程导出程序”。

    2. “扩展程序设置” 部分的 “行程 XML 文件 ”属性旁边,单击省略号按钮 (...) 。

    3. “选择 XML 文件”对话框中的“文件名”框中键入 C:\HowTos\Itineraries\LdapResolution,然后单击“保存”。

      注意

      此步骤使你能够将行程作为 XML 导出到本地文件位置。 通过将行程导出到本地文件位置(而不是行程数据库),可以使用 ESB 测试客户端应用程序测试行程。 稍后将在此操作说明主题中完成此过程。

定义行程的结构

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

    1. 单击 “名称” 属性,然后键入 ReceiveNAOrder

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

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

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

  2. 从“工具箱”中,将 “行程服务 ”模型元素拖到设计图面,然后将其放置在 On-Ramp 模型元素的右侧。 在“行程服务1”属性窗口中,配置以下属性:

    1. 单击 “名称” 属性,然后键入 RouteMessageEmail

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

      注意

      此属性定义该过程将在管道中发生, (消息传递) 。 或者,如果进程将在业务流程中发生,请将 “行程服务扩展程序 ”属性设置为 Orchestration Extender

    3. “容器 ”下拉列表中,展开“ ReceiveNAOrder”,然后单击“ 接收处理程序”。

    4. “服务名称” 下拉列表中,单击“ Microsoft.Practices.ESB.Services.Routing”。

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

    1. 单击 “Name” 属性,然后键入 LdapResolver

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

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

    4. 单击“ 传输位置” 属性,然后键入 {mail}

    5. 单击 SearchRoot 属性,然后键入 ou=Employees,dc=globalbank,dc=com

      注意

      如果尚未根据“先决条件”部分中的规范设置环境,请将上述属性中的值替换为适合你的环境的值。

    6. 单击 Filter 属性,然后将值更改为 (& (objectClass=User) (| (givenName=john) ) )

      注意

      键入前面的值以替换现有文本。

    7. ThrowErrorIfNotFound 下拉列表中,单击“ True”。

  4. 在属性窗口单击“终结点配置”属性,然后单击省略号按钮 (...) 。

    1. 在“ 终结点配置 ”对话框中,单击“ EmailBodyText” 属性,然后键入 “订单已准备好处理”。

    2. 单击“ From ”属性,然后键入 orders@globalbank.com

    3. 单击 MessagePartsAttachment 属性,然后键入 2

    4. 单击“ Subject” 属性,然后 为 {givenName} 键入 Order

    5. 使用本地环境的连接信息配置 SMTPAuthentication、SMTPHost、UserNamePassword 属性。

    6. 单击“ 确定 ”关闭“ 终结点配置 ”对话框。

  5. 右键单击 LdapResolver 冲突解决程序,然后单击“ 测试冲突解决程序配置”。

  6. 在“输出”窗口中,验证“已解析 的终结点配置” 值中的主题是否 为 Order for John,然后验证解析的 “传输位置” 是否是与 Active Directory (中的用户帐户关联的电子邮件地址, johne@globalbank.com 例如,) 。

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

  8. 从工具箱中,将 Off-Ramp 模型元素拖到设计图面,然后将其放在 RouteMessageEmail 模型元素的右侧。 在 OffRamp1 属性窗口中,配置以下属性:

    1. 单击 “名称” 属性,然后键入 “EmailNAOrderDoc”。

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

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

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

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

    1. 单击“ 名称” 属性,然后键入 SendPortFilter

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

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

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

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

导出模型以用于行程测试客户端

  1. 在 Visual Studio 中,右键单击 LdapResolution 行程的设计图面,然后单击“ 导出模型”。

    注意

    行程的 XML 版本将在 Visual Studio 中打开。

  2. 保存所有项目项目。

  3. 在 Windows 资源管理器中,浏览到 C:\HowTos\行程,并注意到创建行程 XML (LdapResolution.xml) 。

测试行程

  1. 使用 在开发活动的先决条件 (C:\HowTos\ESB.Itinerary.Test.exe - 快捷方式) 中创建的快捷方式打开行程测试客户端示例应用程序。

  2. 在“行程测试客户端”中,清除“使用 WCF 服务检查”框,然后单击“加载行程”。

  3. 在“ 打开行程文件 ”对话框中,浏览到 C:\HowTos\行程。 选择 “LdapResolution.xml”,然后单击“ 打开 ”以加载行程。

  4. 单击 “确定” 清除“ 已成功加载行程” 消息。

  5. 在“行程测试客户端”中,单击“ 加载消息 ”框旁边的省略号按钮 (...) 。

  6. “选择要加载的 XML 文档 ”对话框中,浏览到 C:\HowTos。 选择 “NAOrderDoc.xml”,然后单击“ 打开 ”以加载测试消息。

  7. 单击“ 提交请求” 按钮。 测试完成后,单击“ 确定 ”关闭显示的确认。

  8. 打开 Microsoft Outlook Express (或所选邮件客户端) ,并验证邮件是否传递到 John Evans 的电子邮件。

其他资源

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