好的,我正在使用服务代理,通过服务代理发送的所有其他邮件都可以正常工作。除了一条消息停留在传输队列中并且不会发送之外。我看到的唯一错误消息是:
连接尝试失败,并显示错误:'10060(连接尝试失败,因为在一段时间后连接方未正确响应,或者连接建立失败,因为连接的主机未响应。)。
但不清楚是否相关。再次在发送相同消息类型的其他消息上正常工作。
答案 0 :(得分:0)
问题是当XML包含特殊字符时Service Broker无法正常工作 字符
问题在于,在生成通过服务代理发送的xml时,我们的文档中有一个á(急性)。我们通过将消息类型从VALIDATION =切换来解决了此问题 WELL_FORMED_XML以 验证=无。
然后我们修改了 接收队列上已激活的存储过程。换行
@message_body = CAST(message_body as XML),
-- to
@message_body = CAST(CAST(message_body AS VARCHAR(MAX)) AS XML),
这解决了问题。
我相信或者我们可以对xml进行消毒以将á(a-acute)替换为和html char代码,但是用例要求我们允许使用很多特殊字符,而这些特殊字符很难识别面前。
连接尝试失败,并显示错误:'10060(连接尝试失败,因为在一段时间后连接方未正确响应,或者连接建立失败,因为连接的主机未响应。)。
此消息是由于与同一服务器上运行的另一个Service Broker实例的连接问题引起的。