У меня есть экземпляр получателя служебной шины, работающий как непрерывно работающий веб-задание, и существует требование обновить sh строку первичного соединения 6 раз после
, что я узнал, если я обновляю соединение Если использовать строку azure portal, существующий экземпляр получателя должен выдать неавторизованное исключение, но, к моему удивлению, он не генерирует никаких исключений, работает примерно 20 минут и прекращает прием сообщений без каких-либо исключений.
Мой вопрос здесь заключается в том, что без получения исключения я не могу нажать на хранилище ключей и создать новый экземпляр получателя, есть ли другой альтернативный способ сделать это?
Я создал прототип моего приложения и пакет служебной шины, который я использую: WindowsAzure .ServiceBus 4.1.8 и запускаю его с помощью консольного приложения.
static void Main(string[] args)
{
try
{
var factory = MessagingFactory.CreateFromConnectionString("connectionstring");
factory.PrefetchCount = 1;
var queue = factory.CreateMessageReceiver("test");
var options = new OnMessageOptions()
{
MaxConcurrentCalls = 1,
AutoComplete = false
};
Console.WriteLine(DateTime.Now);
queue.OnMessageAsync(HandleMessageReceived, options);
Console.ReadLine();
}
catch (Exception ex)
{
Console.WriteLine("exception caught" + ex.Message);
throw;
}
}
и это мой обработчик сообщений
async static Task HandleMessageReceived(BrokeredMessage brokeredMessage)
{
try
{
await brokeredMessage.CompleteAsync();
Console.WriteLine("Message Processing completed");
}
catch (Exception ex)
{
Console.WriteLine("Message Handlet exception" + ex.Message);
Console.WriteLine("has hit the catch of message handler ");
throw;
}
}
После запуска приложения, которое завершает несколько сообщений из тестовой очереди i go для переноса и регенерации моих первичных ключей.