65.9K
CodeProject 正在变化。 阅读更多。
Home

开发 BizTalk 项目过程中遇到的陷阱及其解决方法

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.38/5 (6投票s)

2007年9月6日

CPOL

4分钟阅读

viewsIcon

23769

本文讨论了在开发 BizTalk 项目过程中遇到的陷阱及其解决方法。

引言

本文介绍了一些在 BizTalk 项目开发过程中通常会遇到的陷阱及其解决方法。

必备组件

读者应具备以下基本知识:

  • § Microsoft BizTalk Server 概念
  • § Microsoft .NET Framework
  • § Microsoft SQL Server

遇到的陷阱及解决方法

1. BizTalk 2004 在 Win XP with SP2 上安装失败

  • 未能启用单一登录 (SSO) 服务
  • 未能生成主密钥

分辨率

使用组策略对象编辑器强制对 RPC 终结点映射器使用已验证的客户端调用,并禁用 RPC 协议强制执行的 RestrictRemoteClients 设置。

  1. 单击“开始”,单击“运行”,键入 gpedit.msc,然后单击“确定”。
  2. 在“组策略对象编辑器”中,展开“计算机配置”,展开“管理模板”,展开“系统”,单击“远程过程调用”,然后单击“RPC 终结点映射器客户端身份验证”。
  3. 将“RPC 终结点映射器客户端身份验证”的值更改为“已启用”。
  4. 单击“未经验证的 RPC 客户端的限制”。
  5. 将“未经验证的 RPC 客户端的限制”的值更改为“已禁用”。

使用注册表编辑器强制对 RPC 终结点映射器使用已验证的客户端调用,并禁用 RPC 协议强制执行的 RestrictRemoteClients 设置。

  1. 单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。
  2. 找到并单击以下注册表项:HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT
  3. 查找名为 RPC 的子项。如果此项存在,单击 RPC 子项,然后转到步骤 6。如果此项不存在,请转到步骤 4。
  4. 在“编辑”菜单上,指向“新建”,然后单击“项”。
  5. 选中新项时,键入 RPC,然后按 Enter 键。
  6. 在“编辑”菜单上,指向“新建”,然后单击 DWORD 值。
  7. 键入 EnableAuthEpResolution,然后按 Enter 键。
  8. 在“编辑”菜单上,单击“修改”。
  9. 在“数值数据”框中,键入数字 1。单击“确定”。
  10. 在“编辑”菜单上,指向“新建”,然后单击 DWORD 值。
  11. 键入 RestrictRemoteClients,然后按 Enter 键。
  12. 在“编辑”菜单上,单击“修改”。
  13. 在“数值数据”框中,键入 0,然后单击“确定”。
  14. 退出注册表编辑器。

2. SQL 适配器分布式事务及其隔离级别的问题

Issue

  • 事务管理器已禁用对远程网络事务的支持

分辨率

  • 首先,请验证“分布式事务协调器”服务是否在数据库服务器计算机和客户端计算机上都正在运行。
    1. 转到“管理工具 > 服务”
    2. 如果“分布式事务协调器”服务未运行,请将其启动。
  • 如果它正在运行,则需要在运行数据库服务器的计算机上进行以下设置。
    1. 转到“管理工具 > 组件服务”。
    2. 在左侧导航树中,转到“<组件服务><计算机 > 我的计算机”(您可能需要双击并等待,因为有些节点需要一些时间才能展开)。
    3. 右键单击“我的计算机”,选择“属性”。
    4. 选择“MSDTC”选项卡。
    5. 单击“安全配置”。
    6. 确保选中“网络 DTC 访问”、“允许远程客户端”、“允许入站/出站”和“启用 TIP”选项。
    7. 服务将重启。
    8. 但如果仍然不起作用,您可能需要重新启动服务器。

在您的客户端计算机上,使用上述相同步骤打开“安全配置”设置,确保选中“网络 DTC 访问”、“允许入站/出站”选项,如有必要,请重启服务和计算机。

3. 使用信封架构进行消息拆解的问题

Issue

  • 我们可以使用带有 XML 拆解器的自定义管道来拆解从 SQL 接收位置收到的信封消息,以获取其 constituent 消息。如果在管道和接收消息的接收位置中未指定正确的选项,则拆解会失败,并且不会返回任何消息,从而导致消息丢失。

分辨率

  • 接收位置负责将传入 XML 添加信封节点以及命名空间 URI,这是消息引擎识别消息类型的手段。因此,在创建 SQL 接收位置时,必须指定正确的信封节点名称(文档根节点名称)和命名空间 URI。
  • 在接收位置中指定的命名空间 URI 也必须在信封架构和文档架构中都指定为文档命名空间。
  • 在设计自定义管道时,必须指定 XML 拆解器阶段组件的文档架构和信封架构。自定义管道必须明确指定为 SQL 接收位置的接收处理程序。

4. 编排内部的消息构造问题

Issue

  • 消息未在编排的构造形状内构造。

分辨率

  • 在编排中使用 BizTalk XML 消息之前,必须先构造它。实际上,这只是用 XML 填充消息。如果尝试在构造消息之前使用该消息,则会出现上述错误。有些消息是预先构造的,例如来自发送端口的消息。
  • 在编排内构造消息有几种方法:
    1. 使用 BizTalk 映射从现有消息创建新消息
    2. 将一条消息分配给另一条消息(即,创建现有消息的副本)
    3. 借助 System.XML.XMLDocument 变量创建消息

我们必须首先声明一个类型为 XmlDocument 的编排变量。然后在消息分配形状中,我们需要执行类似的操作:

myxmlDoc = new XmlDocument(); 
myxmlDoc.LoadXML("<somexmlhere></somexmlhere>") 
myMsgBeingConstructed = myxmlDoc;

历史

  • 2010 年 9 月 10 日:初始发布
© . All rights reserved.