Freigeben über


SpecializedQueueClientOptions Klasse

Definition

Bietet erweiterte Clientkonfigurationsoptionen für das Herstellen einer Verbindung mit Azure Queue Storage.

public class SpecializedQueueClientOptions : Azure.Storage.Queues.QueueClientOptions
type SpecializedQueueClientOptions = class
    inherit QueueClientOptions
Public Class SpecializedQueueClientOptions
Inherits QueueClientOptions
Vererbung
SpecializedQueueClientOptions

Konstruktoren

SpecializedQueueClientOptions(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 gemeinsam verwendeten Schlüssels nicht berücksichtigt.

(Geerbt von QueueClientOptions)
ClientSideEncryption

Einstellungen für die Datenverschlüsselung im SDK. Die clientseitige Verschlüsselung fügt Ihren Warteschlangennachrichten Metadaten hinzu, die für die Entschlüsselung erforderlich sind.

Weitere Informationen finden Sie unter .

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 diese Option aktiviert ist, versucht der Client eine anfängliche nicht autorisierte Anforderung, um eine Abfrage aufzufordern, um den richtigen Mandanten für die Ressource zu ermitteln.

(Geerbt von QueueClientOptions)
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 Wiederholungsversuchen verwendet. Wenn der status der Antwort vom sekundären URI 404 ist, verwenden nachfolgende Wiederholungen für die Anforderung nicht erneut den sekundären URI, da dies darauf hinweist, dass die Ressource möglicherweise noch nicht dort weitergegeben wurde. Andernfalls wechseln nachfolgende Wiederholungen zwischen dem primären und sekundären URI hin und her.

(Geerbt von QueueClientOptions)
MessageEncoding

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

(Geerbt von QueueClientOptions)
Retry

Ruft die Clientwiebele-Wiederholungsoptionen ab.

(Geerbt von ClientOptions)
RetryPolicy

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

(Geerbt von ClientOptions)
Transport

Die , die HttpPipelineTransport für diesen Client verwendet werden soll. Standardmäßig wird eine 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.

(Geerbt von QueueClientOptions)

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 PerRetry Sie PerCall andernfalls , 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 von der Warteschlange empfangen oder ein Spitzenwert erreicht wird, aber nicht decodiert werden kann.

Eine solche Nachricht kann empfangen oder erreicht werden, wenn QueueClient eine bestimmte QueueMessageEncoding Nachricht erwartet wird, aber es gibt einen anderen Producer, 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 überprüft werden kann, wie er von der Warteschlange empfangen wurde.

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

Der Handler wird möglicherweise sowohl von synchronen als auch von asynchronen Empfangs- und Einsehen-APIs aufgerufen. Daher sollte die Implementierung des Handlers an QueueClient den verwendeten APIs ausgerichtet sein. Hier erfahren Sie SyncAsyncEventHandler<T> , wie Sie den Handler richtig implementieren. 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);

(Geerbt von QueueClientOptions)

Gilt für: