SQL Server 2000DBAVisual Studio .NET 2003.NET 1.1XMLIntermediateDevVisual StudioSQL ServerSQLWindows.NETC#
开发 BizTalk 项目过程中遇到的陷阱及其解决方法






2.38/5 (6投票s)
本文讨论了在开发 BizTalk 项目过程中遇到的陷阱及其解决方法。
引言
本文介绍了一些在 BizTalk 项目开发过程中通常会遇到的陷阱及其解决方法。
必备组件
读者应具备以下基本知识:
- § Microsoft BizTalk Server 概念
- § Microsoft .NET Framework
- § Microsoft SQL Server
遇到的陷阱及解决方法
1. BizTalk 2004 在 Win XP with SP2 上安装失败
- 未能启用单一登录 (SSO) 服务
- 未能生成主密钥
分辨率
使用组策略对象编辑器强制对 RPC 终结点映射器使用已验证的客户端调用,并禁用 RPC 协议强制执行的 RestrictRemoteClients
设置。
- 单击“开始”,单击“运行”,键入 gpedit.msc,然后单击“确定”。
- 在“组策略对象编辑器”中,展开“计算机配置”,展开“管理模板”,展开“系统”,单击“远程过程调用”,然后单击“RPC 终结点映射器客户端身份验证”。
- 将“RPC 终结点映射器客户端身份验证”的值更改为“已启用”。
- 单击“未经验证的 RPC 客户端的限制”。
- 将“未经验证的 RPC 客户端的限制”的值更改为“已禁用”。
使用注册表编辑器强制对 RPC 终结点映射器使用已验证的客户端调用,并禁用 RPC 协议强制执行的 RestrictRemoteClients
设置。
- 单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。
- 找到并单击以下注册表项:HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT
- 查找名为 RPC 的子项。如果此项存在,单击 RPC 子项,然后转到步骤 6。如果此项不存在,请转到步骤 4。
- 在“编辑”菜单上,指向“新建”,然后单击“项”。
- 选中新项时,键入 RPC,然后按 Enter 键。
- 在“编辑”菜单上,指向“新建”,然后单击
DWORD
值。 - 键入
EnableAuthEpResolution
,然后按 Enter 键。 - 在“编辑”菜单上,单击“修改”。
- 在“数值数据”框中,键入数字 1。单击“确定”。
- 在“编辑”菜单上,指向“新建”,然后单击
DWORD
值。 - 键入
RestrictRemoteClients
,然后按 Enter 键。 - 在“编辑”菜单上,单击“修改”。
- 在“数值数据”框中,键入
0
,然后单击“确定”。 - 退出注册表编辑器。
2. SQL 适配器分布式事务及其隔离级别的问题
Issue
- 事务管理器已禁用对远程网络事务的支持
分辨率
- 首先,请验证“分布式事务协调器”服务是否在数据库服务器计算机和客户端计算机上都正在运行。
- 转到“管理工具 > 服务”
- 如果“分布式事务协调器”服务未运行,请将其启动。
- 如果它正在运行,则需要在运行数据库服务器的计算机上进行以下设置。
- 转到“管理工具 > 组件服务”。
- 在左侧导航树中,转到“<组件服务><计算机 > 我的计算机”(您可能需要双击并等待,因为有些节点需要一些时间才能展开)。
- 右键单击“我的计算机”,选择“属性”。
- 选择“MSDTC”选项卡。
- 单击“安全配置”。
- 确保选中“网络 DTC 访问”、“允许远程客户端”、“允许入站/出站”和“启用 TIP”选项。
- 服务将重启。
- 但如果仍然不起作用,您可能需要重新启动服务器。
在您的客户端计算机上,使用上述相同步骤打开“安全配置”设置,确保选中“网络 DTC 访问”、“允许入站/出站”选项,如有必要,请重启服务和计算机。
3. 使用信封架构进行消息拆解的问题
Issue
- 我们可以使用带有 XML 拆解器的自定义管道来拆解从 SQL 接收位置收到的信封消息,以获取其 constituent 消息。如果在管道和接收消息的接收位置中未指定正确的选项,则拆解会失败,并且不会返回任何消息,从而导致消息丢失。
分辨率
- 接收位置负责将传入 XML 添加信封节点以及命名空间 URI,这是消息引擎识别消息类型的手段。因此,在创建 SQL 接收位置时,必须指定正确的信封节点名称(文档根节点名称)和命名空间 URI。
- 在接收位置中指定的命名空间 URI 也必须在信封架构和文档架构中都指定为文档命名空间。
- 在设计自定义管道时,必须指定 XML 拆解器阶段组件的文档架构和信封架构。自定义管道必须明确指定为 SQL 接收位置的接收处理程序。
4. 编排内部的消息构造问题
Issue
- 消息未在编排的构造形状内构造。
分辨率
- 在编排中使用 BizTalk XML 消息之前,必须先构造它。实际上,这只是用 XML 填充消息。如果尝试在构造消息之前使用该消息,则会出现上述错误。有些消息是预先构造的,例如来自发送端口的消息。
- 在编排内构造消息有几种方法:
- 使用 BizTalk 映射从现有消息创建新消息
- 将一条消息分配给另一条消息(即,创建现有消息的副本)
- 借助
System.XML.XMLDocument
变量创建消息
我们必须首先声明一个类型为 XmlDocument
的编排变量。然后在消息分配形状中,我们需要执行类似的操作:
myxmlDoc = new XmlDocument();
myxmlDoc.LoadXML("<somexmlhere></somexmlhere>")
myMsgBeingConstructed = myxmlDoc;
历史
- 2010 年 9 月 10 日:初始发布