Azure Service Bus队列在获取的消息中提供控制字符 [英] Azure Service Bus Queue gives control characters in fetched message

查看:107
本文介绍了Azure Service Bus队列在获取的消息中提供控制字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用BizTalk Server SB消息适配器来从Azure Service Bus队列检索消息.我已经成功地(使用相同的适配器)成功地将消息发送到队列中,并从队列中检索消息并进行了进一步处理.

I am using BizTalk Server SB-Messaging adapter to retreive messages from Azure Service Bus Queue. I have successfully managed to send message to queue myself (using same adapter), and retreive message from queue and do further processing.

当第三方软件供应商将消息发送到队列中,并且BizTalk Server检索和处理消息时,就会出现问题.然后,我在消息的开头收到以下其他标题"信息和控制字符:

Problem arises when a 3rd party software supplier is sending messages to the queue, and for BizTalk Server to retreive and process message. I then receive the following additional "header"-information and control characters in the beginning of the message:

在文本中:@ACKstringBShttp://schemas.microsoft.com/2003/10/Serialization/?$ SOH

In text: @ACKstringBShttp://schemas.microsoft.com/2003/10/Serialization/?$SOH

似乎有某种封装的消息,包括用于处理队列中消息确认的标头.

Seems like there is some sort of enveloped message, including headers to handle ACKnowledgement of the message to the queue.

SB消息传递适配器给出了以下初始错误消息:

SB-Messaging adapter gave following initial error message:

"地址处的WCF服务主机出现故障,因此没有 可以在相应的接收位置接收更多消息. 若要解决此问题,BizTalk Server将自动尝试重新启动 服务主机."

"The WCF service host at address has faulted and as a result no more messages can be received on the corresponding receive location. To fix the issue, BizTalk Server will automatically attempt to restart the service host."

然后,另一个错误消息:

And, another error message:

没有反汇编平台组件可以识别数据."

"No Disassemble stage components can recognize the data."

有人以前曾遇到过这个问题吗,那是什么原因引起的?字符编码是否可能是此问题的原因?

Did anyone hit this problem before, and, what can be the cause of the problem? Can character encoding be a possible cause of this problem?

推荐答案

以下是反馈!

事实证明,第三方软件供应商具有将消息发送为流而不是字符串的设置.原来这是一个使用BrokeredMessage对象的.Net应用程序.使用字符串可使消息序列化,然后将元数据添加到消息中.使用流,不会发生这样的序列化,并且消息保持不变.

Turned out 3rd party software supplier had a setting to send message as stream, instead of string. Turns out it is a .Net application using BrokeredMessage object. Using string makes message serialized, and meta-data is added to the message. Using stream, no such serialization takes place, and message is kept untouched.

因此,问题是发送到Service Bus Queue时使用了字符串和自动序列化.

So, problem was using string and automatic serialization when sending to Service Bus Queue.

这篇关于Azure Service Bus队列在获取的消息中提供控制字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆