Azure Service Bus AMQP对象接收器异常中止

问题描述

当尝试向Azure Service Bus队列添加消息时,有时会出现此错误。谁能解释为什么会这样吗?

enter image description here

设置为,我们有一个Azure持久功能,该功能可以调用活动功能。该活动功能将该消息添加到队列中。

这是我们进行排队的方式。

    public async Task SendWithDelayAsync<T>(T obj,TimeSpan delayProcessing,string sessionId = null) where T : BaseQueueMessage
    {
        string messageBody = JsonConvert.SerializeObject(obj);
        var message = new Message(Encoding.UTF8.GetBytes(messageBody));
        if (!string.IsNullOrEmpty(sessionId))
        {
            message.SessionId = sessionId;
        }
        // Send the message to the queue.
        await _queueClient.ScheduleMessageAsync(message,DateTime.Now.Add(delayProcessing));
    }

谢谢!

解决方法

docs中所述,这种情况发生在

尝试对具有以下内容的对象调用操作 已被关闭,中止或处置。在极少数情况下,环境 交易已被处理。

解决方案是检查代码,并确保它不会调用对已处置对象的操作。

过去我有类似的问题,如果您使用的不是Microsoft.Azure.WebJobs.Extensions.ServiceBus SDK版本,请尝试将其升级到“ 4.1.2”。

,

请尝试将其包含在您的代码中。这会让您了解客户端是否关闭

if (_client.IsClosedOrClosing)
{
   _queueClient= new QueueClient(connectionString,queueName);
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...