Freigeben über


QueueClientOptions Klasse

Definition

Stellt die Clientkonfigurationsoptionen zum Herstellen einer Verbindung mit Azure Queue Storage bereit.

public class QueueClientOptions : Azure.Core.ClientOptions
type QueueClientOptions = class
    inherit ClientOptions
Public Class QueueClientOptions
Inherits ClientOptions
Vererbung
QueueClientOptions
Abgeleitet

Konstruktoren

QueueClientOptions(QueueClientOptions+ServiceVersion)

Initialisiert eine neue Instanz der QueueClientOptions-Klasse.

Eigenschaften

Audience

Ruft die Zielgruppe ab, die für die Authentifizierung mit Azure Active Directory (AAD) verwendet werden soll, oder legt sie fest. Die Zielgruppe wird bei verwendung eines freigegebenen Schlüssels nicht berücksichtigt.

Diagnostics

Ruft die Clientdiagnoseoptionen ab.

(Geerbt von ClientOptions)
EnableTenantDiscovery

Ermöglicht die Mandantenermittlung über die Autorisierungsanforderung, wenn der Client für die Verwendung von TokenCredential konfiguriert ist. Wenn dies aktiviert ist, versucht der Client eine erste nicht autorisierte Anforderung, um eine Anforderung aufzufordern, um den richtigen Mandanten für die Ressource zu ermitteln.

GeoRedundantSecondaryUri

Ruft den sekundären Speicher Uri ab, aus dem für das Speicherkonto gelesen werden kann, wenn das Konto für RA-GRS aktiviert ist, oder legt diesen fest.

Wenn diese Eigenschaft festgelegt ist, wird der sekundäre URI für GET- oder HEAD-Anforderungen während der Wiederholungen verwendet. Wenn der status der Antwort aus dem sekundären URI 404 ist, verwenden nachfolgende Wiederholungen für die Anforderung den sekundären URI nicht erneut, da dies darauf hindeutet, dass die Ressource dort möglicherweise noch nicht weitergegeben wurde. Andernfalls wechseln nachfolgende Wiederholungen zwischen dem primären und sekundären URI hin und her.

MessageEncoding

Ruft eine Nachrichtencodierung ab, die bestimmt, wie Body in HTTP-Anforderungen und -Antworten dargestellt wird, oder legt diese fest. Der Standardwert lautet None.

Retry

Ruft die Client-Wiederholungsoptionen ab.

(Geerbt von ClientOptions)
RetryPolicy

Ruft die Richtlinie ab, die für Wiederholungen verwendet werden soll, oder legt sie fest. Wenn eine Richtlinie angegeben wird, wird sie anstelle der Retry -Eigenschaft verwendet. Der RetryPolicy Typ kann abgeleitet werden, um das Standardverhalten zu ändern, ohne die Wiederholungslogik vollständig implementieren zu müssen. Wenn Process(HttpMessage, ReadOnlyMemory<HttpPipelinePolicy>) überschrieben oder ein benutzerdefinierter HttpPipelinePolicy Wert angegeben ist, liegt es in der Verantwortung des Implementierers, die ProcessingContext Werte zu aktualisieren.

(Geerbt von ClientOptions)
Transport

Der HttpPipelineTransport , der für diesen Client verwendet werden soll. Standardmäßig wird ein instance von verwendetHttpClientTransport.

(Geerbt von ClientOptions)
Version

Ruft die QueueClientOptions.ServiceVersion der Dienst-API ab, die beim Senden von Anforderungen verwendet wird. Weitere Informationen finden Sie unter. Versionsverwaltung für die Azure Storage-Dienste.

Methoden

AddPolicy(HttpPipelinePolicy, HttpPipelinePosition)

Fügt der Clientpipeline eine Richtlinie hinzu HttpPipeline . Die Position der Richtlinie in der Pipeline wird durch den position -Parameter gesteuert. Wenn die Richtlinie einmal pro Clientanforderung ausgeführt werden soll, verwenden Sie PerCall andernfalls PerRetry die Verwendung, um die Richtlinie für jeden Wiederholungsversuch auszuführen. Beachten Sie, dass derselbe instance von policy allen Pipelines des Clients hinzugefügt wird, die mit diesem ClientOptions Objekt erstellt wurden.

(Geerbt von ClientOptions)

Ereignisse

MessageDecodingFailed

Optional. Führt die Aufgaben aus, die erforderlich sind, wenn eine Nachricht aus der Warteschlange empfangen oder erreicht wird, aber nicht decodiert werden kann.

Eine solche Nachricht kann empfangen oder erreicht werden, wenn QueueClient bestimmtes QueueMessageEncoding erwartet wird, aber es gibt einen anderen Produzenten, der Nachrichten nicht in erwarteter Weise codiert. Das heißt, die Warteschlange enthält Nachrichten mit unterschiedlicher Codierung.

QueueMessageDecodingFailedEventArgs enthält QueueClient , der die Nachricht ReceivedMessage sowie oder PeekedMessage mit unformatiertem Text empfangen hat, d. h. es wird keine Decodierung versucht, damit der Text so überprüft werden kann, wie er von der Warteschlange empfangen wurde.

Die QueueClient versucht nicht, die Nachricht aus der Warteschlange zu entfernen. Daher sollte eine solche Behandlung in den Ereignishandler selbst einbezogen werden.

Der Handler wird potenziell von synchronen und asynchronen Empfangs- und Peek-APIs aufgerufen. Daher sollte die Implementierung des Handlers an QueueClient den verwendeten APIs ausgerichtet sein. Informationen zum korrekten Implementieren des Handlers finden Sie SyncAsyncEventHandler<T> hier. Das folgende Beispiel zeigt einen Handler, in dem alle möglichen Fälle untersucht werden.

QueueClientOptions queueClientOptions = new QueueClientOptions()
{
    MessageEncoding = QueueMessageEncoding.Base64
};

queueClientOptions.MessageDecodingFailed += async (QueueMessageDecodingFailedEventArgs args) =>
{
    if (args.PeekedMessage != null)
    {
        Console.WriteLine($"Invalid message has been peeked, message id={args.PeekedMessage.MessageId} body={args.PeekedMessage.Body}");
    }
    else if (args.ReceivedMessage != null)
    {
        Console.WriteLine($"Invalid message has been received, message id={args.ReceivedMessage.MessageId} body={args.ReceivedMessage.Body}");

        if (args.IsRunningSynchronously)
        {
            args.Queue.DeleteMessage(args.ReceivedMessage.MessageId, args.ReceivedMessage.PopReceipt);
        }
        else
        {
            await args.Queue.DeleteMessageAsync(args.ReceivedMessage.MessageId, args.ReceivedMessage.PopReceipt);
        }
    }
};

QueueClient queueClient = new QueueClient(connectionString, queueName, queueClientOptions);

Gilt für: