Последние два дня я начал получать сообщение MessagingEntityNotFoundException, когда мой код вызывает Microsoft.Azure.ServiceBus.Core.MessageReceiver.PeekAsync в приемнике сообщений очереди недоставленных сообщений.Код не был изменен до того, как возникло исключение, и работал без проблем в течение последних двух месяцев.
Полное сообщение об исключении:
Microsoft.Azure.ServiceBus.MessagingEntityNotFoundException: A request handler with id '56216' was not found in the entity management node $management.
Код выполняется вФункция Azure, запускаемая по времени.
Код для настройки получателей сообщений:
using Microsoft.Azure.ServiceBus;
using Microsoft.Azure.ServiceBus.Core;
using Microsoft.Azure.ServiceBus.Management;
public class DeadLetterQueueMonitor {
private static List<MessageReceiver> _messageReceivers;
private async Task<List<MessageReceiver>> GetMessageReceivers(ILogger logger)
{
if (_messageReceivers == null)
{
_messageReceivers = new List<MessageReceiver>();
var managementClient = new ManagementClient(ConnectionStrings.ServiceBusConnectionString);
var topics = await managementClient.GetTopicsAsync();
foreach (var topic in topics)
{
var subscriptions = await managementClient.GetSubscriptionsAsync(topic.Path);
_messageReceivers.AddRange(subscriptions.Select(subscription =>
{
string entityPath = EntityNameHelper.FormatDeadLetterPath(EntityNameHelper.FormatSubscriptionPath(topic.Path, subscription.SubscriptionName));
return new MessageReceiver(ConnectionStrings.ServiceBusConnectionString, entityPath);
}));
}
}
_messageReceivers = _messageReceivers
.Select(r => r.IsClosedOrClosing ? new MessageReceiver(ConnectionStrings.ServiceBusConnectionString, r.Path) : r)
.ToList();
return _messageReceivers;
}
}
Есть предложения, что может быть не так?
РЕДАКТИРОВАТЬ 25/2-2019 (как ответ на комментарии):
Я использую следующие пакеты Nuget:
Microsoft.Azure.Amqp 2.3.0
Microsoft.Azure.ServiceBus 3.1.0
Microsoft.Azure.Services.AppAuthentication 1.0.3
Я добавил немного больше контекста для метода, который создает MessageReceivers.