Azure服务总线:AMQP对象正在关闭。无法执行“附加”操作

时间:2018-11-14 15:51:48

标签: c# azure azureservicebus

我正在西欧数据中心中使用带有AMQP协议的Azure Service Bus主题。 这是解决方案实施方式的示意性方式:

private Microsoft.Azure.ServiceBus.SubscriptionClient CreateClient() {
    string serviceBusConnectionString;
    strin serviceBusTopicName;
    string subscriptionName;

    var subscriptionClient = new Microsoft.Azure.ServiceBus.SubscriptionClient(serviceBusConnectionString, serviceBusTopicName, subscriptionName) {
                PrefetchCount = 0
            };
    return subscriptionClient;
}

public async Task<ISubscriptionClient> CreateSubscriptionClientAsync() {
    //Some logic on the subscriptionClient, caching, creating a new one if it doesn't exists, etc.
    return CreateClient()
}

private async Task CallbackAsync(Message msg, CancellationToken cancellationToken) {
    //Do stuff with the Message
    //when you're done Completethe message
}

public async Task<string> OpenAsync(CancellationToken cancellationToken) {
    subscriptionClient = await CreateSubscriptionClientAsync().ConfigureAwait(false);
    var messageHandlerOptions = new MessageHandlerOptions(ExceptionReceivedHandlerAsync) {
            AutoComplete = false,
            MaxAutoRenewDuration = TimeSpan.FromHours(8)
    };
    subscriptionClient.RegisterMessageHandler(CallbackAsync, messageHandlerOptions);
    return string.Empty;
}

但是昨晚我有成千上万的例外:

Exception: "System.InvalidOperationException: The AMQP object g2b-sessionXXXXXXXX is closing. Operation 'attach' cannot be performed.
at Microsoft.Azure.ServiceBus.Core.MessageReceiver.<OnReceiveAsync>d__86.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Azure.ServiceBus.Core.MessageReceiver.<>c__DisplayClass64_0.<<ReceiveAsync>b__0>d.MoveNext()

我正在使用Microsoft.Azure.ServiceBus v3.1.0.0, 在网上,我没有发现任何有关“无法执行“附加”操作”的有用信息。

在消息总线exception list page上,我没有找到有关此特定问题的任何信息。在status history site中,没有涉及服务总线中断的参考。

有人有没有遇到过这个问题?
是什么导致异常?
我需要实现任何重试逻辑吗?怎么样?
谢谢您的帮助。

0 个答案:

没有答案