如何解决Azure Service Bus AMQP对象接收器异常中止
当尝试向Azure Service Bus队列添加消息时,有时会出现此错误。谁能解释为什么会这样吗?
设置为,我们有一个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);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。