gpt4 book ai didi

c# - 如何调整 Windows Server 服务总线中 BrokeredMessage 的最大消息大小?

转载 作者:行者123 更新时间:2023-11-30 20:01:10 25 4
gpt4 key购买 nike

我已经在运行 Windows Server 2008 R2 Datacenter 的虚拟机上设置了 Windows Server Service Bus 1.0。

我已经编写了一个控制台应用程序来向它发送消息和从它接收消息,并且效果很好。

我一直在成功地发送越来越大的消息,但是当达到 5,226,338 字节(我认为是 5,226,154 字节的消息正文 + 184 字节的 header )时,控制台应用程序目前崩溃了,这不到 5MB。理想情况下,我们需要更多的空间来玩耍。

一些堆栈跟踪如下...

Unhandled Exception: Microsoft.ServiceBus.Messaging.MessagingCommunicationException: The socket connection was aborted. This could be caused by an error processing your message or a receive timeout being exceeded by the remote host, or an underlying network resource issue. Local socket timeout was '00:01:09.2720000'. - --> System.ServiceModel.CommunicationException: The socket connection was aborted. This could be caused by an error processing your message or a receive timeout being exceeded by the remote host, or an underlying network resource issue. Local socket timeout was '00:01:09.2720000'. ---> System.IO.IOException: The write operation failed, see inner exception. ---> System.ServiceModel.CommunicationException: The socket connection was aborted. This could be caused by an error processing your message or a receive timeout being exceeded by the remote host, or an underlying network resource issue. Local socket timeout was '00:01:09.2720000' . ---> System.Net.Sockets.SocketException: An established connection was aborted by the software in your host machine

Windows Azure 服务总线显然有 256KB 的固定限制,但本地 Windows Server 服务总线有 50MB 的限制。请参阅以下文章。

Azure 限制为 256KB - http://msdn.microsoft.com/en-us/library/windowsazure/hh694235.aspx

提及 50MB - http://msdn.microsoft.com/en-us/library/windowsazure/jj193026.aspx

我正在努力达到 50MB 的限制,我想知道我是否需要做些什么来以某种方式配置它,或者消息是否需要以某种方式发送。我注意到上面的文章中有一个参数名称,想知道它是否可以在 PowerShell 中使用。

我一直在努力在网上找到一些有用的信息。有些文章与 Azure 服务总线相关,但其他文章与 Windows Server 服务总线相关。

有 Service Bus 1.1,但我认为它目前处于预览阶段,我不确定这是否有用。

我正在使用类似于下面的代码来发送消息。

namespaceManager = NamespaceManager.Create();messagingFactory = MessagingFactory.Create();

queueClient = messagingFactory.CreateQueueClient(queueName);

queueClient.Send(new BrokeredMessage(new string('x', 5226154)));

这是从以下文章的组合中摘录的,第一篇稍微过时了,第二篇更清楚地说明了需要更改什么才能使事情正常进行。

http://haishibai.blogspot.co.uk/2012/08/walkthrough-setting-up-development.html

http://msdn.microsoft.com/en-us/library/windowsazure/jj218335(v=azure.10).aspx

我希望有人能提供帮助。

最佳答案

我遇到了同样的问题,但经过几次尝试我已经解决了。

打开文件

C:\Program Files\Service Bus\1.1\Microsoft.ServiceBus.Gateway.exe.config

并更改 nettcp 绑定(bind)名称 netMessagingProtocolHead set

maxReceivedMessageSize="2147483647"
maxBufferSize="2147483647"

并重新启动所有服务总线服务。

现在我可以发送和接收大小为 new string('A', 49 * 1024 * 1024) 的消息。

享受 :-)

马丁

关于c# - 如何调整 Windows Server 服务总线中 BrokeredMessage 的最大消息大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19451313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com