我有以下代码在Azure服务总线中创建队列
var cs = azureServiceBusConnectionString;
var namespaceManager = NamespaceManager.CreateFromConnectionString(cs);
if (namespaceManager.QueueExists(queueName))
{
namespaceManager.DeleteQueue(queueName);
}
var que = namespaceManager.CreateQueue(queueName);
que.EnablePartitioning = true;
我的队列已创建好,但我有两个问题
1)即使我将EnablePartioning设置为true,我的队列也将EnablePartioning设置为false。为什么是这样?有没有一种方法我必须调用来保存更改或其他东西 2)我无法设置队列的大小,因为SizeInBytes属性是只读的。我怎么能这样做?
我没有看到任何允许我设置EnablePartitioning或大小的构造函数?
保
答案 0 :(得分:2)
创建队列时,您应该在QueueDescription
上启用分区。
var cs = azureServiceBusConnectionString;
var namespaceManager = NamespaceManager.CreateFromConnectionString(cs);
if (namespaceManager.QueueExists(queueName))
{
namespaceManager.DeleteQueue(queueName);
}
var queueDescription = new QueueDescription(queueName);
queueDescription.EnablePartitioning = true;
queueDescription.MaxSizeInMegabytes = 1024;
var que = namespaceManager.CreateQueue(queueDescription);
您无法设置SizeInBytes
,因为它基于队列中邮件的数量和大小。设置它没有任何意义。
您可以使用MaxSizeInMegabytes
属性设置最大队列大小。