Приемник ServiceBus не генерирует исключение после строки подключения ServiceBus Refre sh и может обрабатывать сообщения - PullRequest
1 голос
/ 18 марта 2020

У меня есть экземпляр получателя служебной шины, работающий как непрерывно работающий веб-задание, и существует требование обновить 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 для переноса и регенерации моих первичных ключей.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...