0

在 MSMQ 中,我将所有队列的消息存储限制设置为 1(KB)。对于创建的队列testQueue,我没有检查Limit message storage,所以所有消息的总大小应该不超过 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. 没有内容的根元素的大小:string></string> = 17
  3. 标题和根之间的新行:\r\n = 2
  4. 根元素的内容 = 584

-----总计 = 624 字节

当我尝试将 584 增加到 585 时,出现资源不足的错误。如果我将限制消息存储更改为 2(KB),我也不能发送 2048 字节但更少。

我在这里想念什么?

4

0 回答 0