14

使用msmq我想发送一条消息(接近 1 GB)。我想发送字节数组。但我只能发送4 MB我怎样才能绕过这个限制?

4

2 回答 2

17

如您所知,MSMQ 中消息的最大大小为 4Mb,最好使用其他一些解决方案。

解决方案: 如果要传输超过此大小的数据,则必须在发送方将其切割成块,并在接收方重新组合。

为什么 MSMQ 消息有 4MB 的限制? 看看这个博客。

如何使用 Microsoft 消息队列发送大于 4 MB 的文件这里

于 2013-01-15T06:48:05.793 回答
6

你必须坚持纯 MSMQ 吗?如果您可能考虑切换到NServiceBus,它有一个称为DataBus的功能,它可以有效地将大型有效负载放置在 MSMQ 之外,但会将有效负载与 MSMQ 消息联系起来。

(根据我的经验,这也使得使用 C# 更愉快地使用 MSMQ。但是 YMMV)


如果你不能使用 NServiceBus,你至少可以从中得到启发。生成一个随机文件名,将内容存储在两个端点都可以访问的共享上,在您的消息中包含文件名。

于 2013-01-15T07:12:48.930 回答