为什么在MSMQ中将“限制消息存储”设置为1(KB)实际上小于1KB?

时间:2012-07-04 13:33:50

标签: .net msmq

在MSMQ中,我将所有队列的限制邮件存储设置为1(KB)。对于创建的队列testQueue,我没有选中限制邮件存储,因此所有邮件的总大小应该高达1K = 1024字节。但实际上它是。 MSMQ只收到624个字节!

这是我发送消息的方式:

var mq = new MessageQueue(@".\private$\testQueue");

var sb = new StringBuilder();
for (int i = 0; i < 584; i++)
{
    sb.Append("a");
}

mq.Send(sb.ToString());

在MSMQ中,消息的主体是:

<?xml version="1.0"?>
<string>aaaaaaa...aaaaaaa</string>
  1. xml header = 21
  2. 的大小
  3. 没有内容的根元素的大小:string></string> = 17
  4. 标题与根之间的新行:\r\n = 2
  5. 根元素的内容= 584
  6. -----总计= 624字节

    当我尝试将584增加到585时,我得到的错误是没有足够的资源。如果我将限制邮件存储空间更改为2(KB),我也无法发送2048字节但更少。

    我想念的是什么?

0 个答案:

没有答案