我使用的是BrokeredMessage
包含Stream
与序列化对象。 根据文档的流是身体不是标题被限制为64 KB的一部分。 用约67 KB的总体消息是远低于256 KB的极限为ServiceBus队列的消息大小。
我能发送消息,并在队列中与正确的邮件大小显示出来。
发出后
Receive
-command该分组被从队列中删除并且计数器相应地递减。 但是,操作运行到超时,并返回一个null
终场代替的BrokeredMessage
。
我试着用大小42 KB的数据包,一切运作良好 - 发送,接收和反序列化。
问题:为什么不将其与更大的消息工作,我怎样才能使它发挥作用?
编辑0
我试着接收byte
填充随机模式-阵列:
var bm = new BrokeredMessage(new byte[n])
-
n
= 63500确实工作。 ( 发送:HeaderSize
= 53,BodySize
= 63572; 接收:HeaderSize
= 139,BodySize
= 63572) -
n
= 64000 不起作用 。 ( 发送:HeaderSize
= 54,BodySize
= 64072; 接收:null
)
编辑1
@大卫普费弗这只是这么简单:
var queueWork = QueueClient.CreateFromConnectionString(@"Endpoint=sb://***/;SharedAccessKeyName=***;SharedAccessKey=***", path, ReceiveMode.ReceiveAndDelete);
BrokeredMessage message = queueWork.Receive();