Nicht get-queue-Länge / message count von Azure

Ich habe einen Anwendungsfall, wo ich zu Warteschlange eine ausgewählte Anzahl von Nachrichten, wenn die aktuelle Länge der Warteschlange unter einen bestimmten Wert absinkt. Da ich in Azure, ich versuche, die RetrieveApproximateMessageCount() Methode, um die aktuelle Nachricht zu zählen. Jedes mal ich rufen Sie diese bekomme ich auch eine exception, die besagt StorageClientException: The specified queue does not exist.. Hier ist ein überblick von dem, was ich getan habe:

  1. Erstellt der Warteschlange in das portal und haben erfolgreich die Nachrichten in der Warteschlange.
  2. Erstellt die Speicher-Konto in das portal und es ist in der Geschaffenen/Online-Zustand
  3. Codiert die Abfrage wie folgt (mit http-und https-Optionen):
    var storageAccount = new CloudStorageAccount(
            new StorageCredentialsAccountAndKey(_messagingConfiguration.StorageName.ToLower(),
            _messagingConfiguration.StorageKey), false);
    
    var queueClient = storageAccount.CreateCloudQueueClient();
    var queue = queueClient.GetQueueReference(queueName.ToLower());
    int messageCount;
    
    try
    {
        messageCount = queue.RetrieveApproximateMessageCount();
    }
    catch (Exception)
    {
        //Booom!!!!! in every case
    }
    
    //ApproximateMessageCount is always null
    
    messageCount = queue.ApproximateMessageCount == null ? 0 : queue.ApproximateMessageCount.Value;
  4. Habe ich bestätigt, der name ist cased nicht richtig mit Sonderzeichen, zahlen, Leerzeichen und den daraus resultierenden queue Url angezeigt wird, als wäre seine korrekte gebildet auf der Grundlage der API-Dokumentationen (z.B. http://myaccount.queue.core.windows.net/myqueue)

Kann jemand helfen, etwas Licht auf, was ich falsch mache.


BEARBEITEN

Habe ich bestätigt, dass mit der MessageFactory ich eine QueueClient und dann enqueue/dequeue-Nachrichten erfolgreich. Wenn ich den CloudStorageAccount die Warteschlange ist nie anwesend, so dass die Grafen und GetMessage Routinen nie funktionieren. Ich vermute diese sind nicht das gleiche??? Unter der Annahme, dass ich richtig bin, was ich brauche, ist, Messen Sie die Länge des Service Bus-Warteschlange. Ist das möglich?

Und... tut der Warteschlange vorhanden sind? 🙂 Was passiert, wenn Sie anrufen queue.AddMessage(...) oder queue.GetMessage(...)?
Ich kann das queue und dequeue-ohne Probleme. In meinem Kopf, das bedeutet, dass es wirklich existiert. Nevermind die Tatsache, dass ich es in das portal, so sollte es existieren. (Glotzen!)
Sie können nicht erstellen Sie eine Warteschlange in das portal. Ich bleibe bei "Die Warteschlange ist nicht vorhanden." Versuchen Sie queue.GetMessage() Recht vor queue.RetrieveApproximateMessageCount(). Ich Wette, es schlägt mit dem gleichen Fehler.
..oder versuchen Sie, ein 'CreateIfNotExists'. Sie könnte die Verbindung zu einem anderen speicherkonto in den anderen Verfahren?
Sie sind mit zwei verschiedenen queuing-Technologien. Es klingt wie Sie haben eine Service Bus-Warteschlange, aber der code, die Sie geben, ist für eine Azure Storage Queue. Sie sind nicht das gleiche, trotz ähnlicher Ziele.

InformationsquelleAutor JoeGeeky | 2012-06-20

Schreibe einen Kommentar