You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WCF-SQL适配器TypedPolling架构构建警告与运行报错咨询

解决方案:WCF-SQL TypedPolling 消息拆分正确配置方案

当然可以完美实现这个场景,完全不需要容忍构建警告!你遇到的问题核心是架构拆分属性的配置细节没匹配好——尤其是Body XPath的命名空间引用错误,以及Root Reference设置后的文档规范注册问题,下面一步步帮你修正:

一、错误原因拆解

  1. 构建警告BEC1008:你之前设置的Body XPath = TypedPolling-TypedPollingResultSet0是简化的节点路径,BizTalk的架构解析器需要带命名空间的完整XPath才能准确识别节点,短名路径会导致它找不到对应节点,从而抛出警告。
  2. 运行时文档规范错误:当你把根节点的Root Reference设为TypedPolling后,拆分出的单条消息类型指向的是内层的TypedPollingResultSet0节点,但这个节点没有被标记为可独立识别的文档根节点,BizTalk找不到对应的文档规范,因此报错。

二、正确的架构配置步骤

假设你的架构命名空间是http://schemas.microsoft.com/sql/2008/05/TypedPolling/YourSchemaName(替换成你实际的命名空间),按以下步骤修改:

1. 配置根节点(TypedPolling)

选中根节点TypedPolling,在属性窗口设置:

  • Envelope = Yes
  • Root Reference = TypedPolling(这是信封架构的核心标识)

2. 配置中间包裹节点(TypedPollingResultSet0,父节点)

这是包裹所有查询结果的节点,需要设置Body XPath来指定拆分的起始位置:
选中这个TypedPollingResultSet0节点,在属性窗口设置:

  • Body XPath = /*[local-name()='TypedPolling' and namespace-uri()='http://schemas.microsoft.com/sql/2008/05/TypedPolling/YourSchemaName']/*[local-name()='TypedPollingResultSet0' and namespace-uri()='http://schemas.microsoft.com/sql/2008/05/TypedPolling/YourSchemaName']
  • Min Occurs = 0,Max Occurs = 1

3. 配置单条数据节点(内层TypedPollingResultSet0)

这是你要拆分出的单条消息的结构,需要标记为独立的文档根:
选中最内层的TypedPollingResultSet0节点(每条数据的节点),在属性窗口设置:

  • Min Occurs = 0,Max Occurs = unbounded
  • Root Reference = TypedPollingResultSet0(让BizTalk将这个节点视为独立的文档架构,生成对应的消息类型)

4. 保存并重新部署架构

完成以上配置后,重新编译并部署你的BizTalk项目,此时构建时的BEC1008警告会完全消失。

三、运行时验证

部署完成后,确保:

  • 接收端口使用XMLReceive管道,无需额外配置
  • 入站映射的目标节点指向内层的TypedPollingResultSet0节点(也就是你标记为Root Reference的那个节点)

此时WCF-SQL适配器获取的多条数据会被XMLReceive管道正确拆分为单条消息,每个消息对应一条数据库记录,完全符合你的需求。

内容的提问来源于stack exchange,提问作者JERKER

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:32:23