【发布时间】:2014-11-14 10:32:12
【问题描述】:
我的一个 Service Broker 对话配置中有一个场景,如下所示:
- 一种消息类型,仅由发起方发送(VALIDATION = WELL_FORMED_XML,无 XSD)
- 具有此消息类型的合同
- 都部署在发起端和目标端(远程机器)
有时我会在 目标队列 中发现 Service Broker 系统错误消息,如下所示:
<Error xmlns="http://schemas.microsoft.com/SQL/ServiceBroker/Error"><Code>-9616</Code><Description>A message of type 'here_is_the_name' was received and failed XML validation. XML parsing: line 1, character 547, illegal xml character This occurred in the message with Conversation ID 'here_is_the_guid', Initiator: 1, and Message sequence number: 0.</Description</Error>
我查看了 Remus Rusanu 的博客 post,他说:
此系统错误被发送到已发送消息类型标记为符合特定 XML 架构但有效负载未能通过所述架构的 XML 验证的对话
在我的情况下,没有涉及 XML 架构,我试图在我的开发环境中使用相同的 SQL Server 版本重现这种情况,但我无法做到。
我想知道虽然我没有使用 XSD 架构,但是否有可能收到此系统错误消息?如果是这样,什么时候会发生,Service Broker 产生上述错误的场景是什么?
消息清楚地表明“XML 解析:第 1 行,字符 547,非法 xml 字符”,所以在我看来它与架构验证无关。 可能是传输级别遇到了一些问题(TCP 错误),这就是 Service Broker 生成此错误消息的原因吗?
【问题讨论】:
标签: sql-server-2008 sql-server-2005 service-broker