Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Microsoft.Azure.ServiceBus.MessaginEntityDisabledException:ReceiveDisabled_Azure_Azureservicebus_Asp.net Core 2.1_Azure Servicebus Queues - Fatal编程技术网

Microsoft.Azure.ServiceBus.MessaginEntityDisabledException:ReceiveDisabled

Microsoft.Azure.ServiceBus.MessaginEntityDisabledException:ReceiveDisabled,azure,azureservicebus,asp.net-core-2.1,azure-servicebus-queues,Azure,Azureservicebus,Asp.net Core 2.1,Azure Servicebus Queues,我已将Azure服务总线队列状态从活动更改为接收禁用。因为我不想处理队列中任何可用的消息。i、 e.我将状态更改为接收禁用的原因 在我将队列状态更改为ReceiveDisabled后,我无法向该队列发布任何消息,因为我收到以下错误 Microsoft.Azure.ServiceBus.MessaginEntityDisabledException:消息实体“sb://xxx-xxx-xxx.ServiceBus.windows.net/test-queue”当前已禁用 更改队列状态的.Net核心

我已将Azure服务总线队列状态从活动更改为接收禁用。因为我不想处理队列中任何可用的消息。i、 e.我将状态更改为接收禁用的原因

在我将队列状态更改为ReceiveDisabled后,我无法向该队列发布任何消息,因为我收到以下错误

Microsoft.Azure.ServiceBus.MessaginEntityDisabledException:消息实体“sb://xxx-xxx-xxx.ServiceBus.windows.net/test-queue”当前已禁用

更改队列状态的.Net核心代码:

var serviceBusManagementClient = new ManagementClient(_serviceBusSettings.Connection);
                foreach (var queueItem in queueItems)
                {
                    var queueDescription = await serviceBusManagementClient.GetQueueAsync(queueItem.Value);
                    queueDescription.Status = EntityStatus.ReceiveDisabled;
                    await serviceBusManagementClient.UpdateQueueAsync(queueDescription);
                }
.Net核心代码,用于将消息发布到队列

    var messageSender = new MessageSender(serviceBusSettings.Connection, serviceBusSettings.MainQueueName);
    var message = new Message(Encoding.UTF8.GetBytes(id))
                {
                    //Assign a SessionId for the message
                    MessageId = id
                };
              
                // Send a message corresponding to this sessionId to the queue
                messageSender.SendAsync(message);
我正在使用下面的参考资料

Microsoft.Azure.ServiceBus

Microsoft.Azure.ServiceBus.Management

参考文献


那个么,我如何才能将消息发布到具有ReceiveDisabled状态的队列中?

我不确定我是否遵守了。您调用了“receivedisabled”,并想知道为什么您的队列不再接收任何消息?!;-)您可能会误解这里的“接收”不是指您的接收者(即处理器),而是指队列。如果您不想再处理任何消息,请停止处理器@静音,在生产中很难停止处理器。所以,我没有停止处理器,而是将队列状态更改为ReceiveDisabled。但正如您现在发现的,ReceiveDisabled不是您想要的。因此,您的处理器中需要一些逻辑来停止从服务器接收消息queue@silent,好的,但通常这种状态的意思是队列部分挂起,允许发送。好的,对不起,我终于明白你的意思了。我的错!是的,我可以重新开始。发生了一些奇怪的事情。当您将状态设置为SendDisabled时,您会收到一条正确的消息“队列当前已禁用发送操作”。但对于ReceiveDisable,您只会得到“队列已禁用”。我将在这里打开一个问题,我不确定我是否明白。您调用了“receivedisabled”,并想知道为什么您的队列不再接收任何消息?!;-)您可能会误解这里的“接收”不是指您的接收者(即处理器),而是指队列。如果您不想再处理任何消息,请停止处理器@静音,在生产中很难停止处理器。所以,我没有停止处理器,而是将队列状态更改为ReceiveDisabled。但正如您现在发现的,ReceiveDisabled不是您想要的。因此,您的处理器中需要一些逻辑来停止从服务器接收消息queue@silent,好的,但通常这种状态的意思是队列部分挂起,允许发送。好的,对不起,我终于明白你的意思了。我的错!是的,我可以重新开始。发生了一些奇怪的事情。当您将状态设置为SendDisabled时,您会收到一条正确的消息“队列当前已禁用发送操作”。但对于ReceiveDisable,您只会得到“队列已禁用”。我将在这里打开一个问题