MSDNによると、メッセージ ペイロードは最大 8KB (8192 バイト) まで拡張される場合があります。
AddMessage メソッドは、メッセージをキューの最後に追加します。メッセージのサイズは最大 8 KB です。その内容は、UTF-8 でエンコードできる形式である必要があります。
ただし、キューにメッセージを追加すると、ペイロードが 8192 バイト未満である必要があるメッセージの例外を受け取ります。魔法の領域は約 6500 バイトのようです。私が送信しているデータは純粋な文字列であり、そのサイズは、.Length
メンバーと、それらが取得されたソースによって送信された長さの両方から検証されます (CRLF 区切り文字には一定の 2 バイトの違いがあります)。
私の質問は2つあります:
1) メッセージ ペイロードに追加された隠しデータによって、サイズが膨張したり、このような奇妙な動作が発生したりすることはありますか? (ペイロードだけでなく、オブジェクト全体に適用される制限など、しかし、それでも、メッセージごとに 1.5KB をどのように説明できるでしょうか?)
2)ペイロードが実際に 8192 未満であることを確実に確認するにはどうすればよいですか?
いくつかの追加情報: 私は VS 2010 Ultimate で Azure SDK 1.4 を使用しており、SQLExpress (2008 だと思います) を使用してコンピューティング エミュレーターとストレージ エミュレーター (まだこのアプリを展開していません) を実行しています。
また、最大サイズが 8192 バイトであることをコードで確認しました (追加のシステム制限が課された場合)。
Trace.WriteLine("Max Queue Message Size: " + CloudQueueMessage.MaxMessageSize, "CloudQueueMessage");
CloudQueueMessage: 最大キュー メッセージ サイズ: 8192