Невозможно получить длину очереди/количество сообщений из Azure

У меня есть вариант использования, в котором мне нужно поставить в очередь выбранное количество сообщений, когда текущая длина очереди падает ниже указанного значения. Поскольку я работаю в Azure, я пытаюсь использовать метод RetrieveApproximateMessageCount(), чтобы получить текущее количество сообщений. Каждый раз, когда я вызываю это, я получаю сообщение об исключении StorageClientException: указанная очередь не существует. . Вот обзор того, что я сделал:

  1. Создал очередь на портале и успешно поставил в нее сообщения.

  2. Создал учетную запись хранения на портале, и она находится в состоянии Created/Online.

  3. Закодировал запрос следующим образом (с использованием параметров http и https):

    var storageAccount = new CloudStorageAccount(
    новый StorageCredentialsAccountAndKey(_messagingConfiguration.StorageName.ToLower(),
     _messagingConfiguration.StorageKey), false);
    var queueClient = storageAccount.CreateCloudQueueClient();
    var очередь = очередьКлиент.ПолучитьСсылкуОчереди(имяочереди.ToLower());
    интервал сообщений;
    пытаться
    {
    messageCount = очередь.RetrieveApproximateMessageCount();
    }
    поймать (исключение)
    {
     //Бум!!!!! в любом случае
    }
    
    // ApproximateMessageCount всегда равен нулю
    messageCount = queue.ApproximateMessageCount == null ? 0 : очередь.ApproximateMessageCount.Value;
    
  4. Я подтвердил, что имя правильно написано без специальных символов, цифр или пробелов, и результирующий URL-адрес очередивыглядит так, как будто он правильно сформирован на основе документации API ( , например http://myaccount.queue.core.windows.net/myqueue)

Может ли кто-нибудь помочь пролить свет на то, что я делаю неправильно.


РЕДАКТИРОВАТЬ

Я подтвердил, что с помощью MessageFactoryя могу создать QueueClient, а затем успешно поставить/удалить сообщения из очереди. Когда я использую CloudStorageAccount, очередь никогда не присутствует, поэтому процедуры подсчета и GetMessage никогда не работают. Я так понимаю это не одно и то же??? Предполагая, что я прав, мне нужно измерить длину очереди служебной шины. Это возможно?

8
задан JoeGeeky 21 June 2012 в 03:11
поделиться