Share via


QueueClientOptions Classe

Définition

Fournit les options de configuration du client pour la connexion au Stockage File d’attente Azure

public class QueueClientOptions : Azure.Core.ClientOptions
type QueueClientOptions = class
    inherit ClientOptions
Public Class QueueClientOptions
Inherits ClientOptions
Héritage
QueueClientOptions
Dérivé

Constructeurs

QueueClientOptions(QueueClientOptions+ServiceVersion)

Initialise une nouvelle instance de la classe QueueClientOptions.

Propriétés

Audience

Obtient ou définit l’audience à utiliser pour l’authentification avec Azure Active Directory (AAD). L’audience n’est pas prise en compte lors de l’utilisation d’une clé partagée.

Diagnostics

Obtient les options de diagnostic du client.

(Hérité de ClientOptions)
EnableTenantDiscovery

Active la découverte de locataire par le biais de la demande d’autorisation lorsque le client est configuré pour utiliser un TokenCredential. Lorsque cette option est activée, le client tente une demande initiale non autorisée pour inviter un défi afin de découvrir le locataire approprié pour la ressource.

GeoRedundantSecondaryUri

Obtient ou définit le stockage Uri secondaire qui peut être lu pour le compte de stockage si le compte est activé pour RA-GRS.

Si cette propriété est définie, l’URI secondaire est utilisé pour les requêtes GET ou HEAD pendant les nouvelles tentatives. Si le status de la réponse de l’URI secondaire est un 404, les nouvelles tentatives suivantes pour la requête n’utilisent plus l’URI secondaire, car cela indique que la ressource n’y a peut-être pas encore été propagée. Sinon, les nouvelles tentatives suivantes alternent entre l’URI principal et l’URI secondaire.

MessageEncoding

Obtient ou définit un encodage de message qui détermine la façon dont Body est représenté dans les requêtes et réponses HTTP. Par défaut, il s’agit de None.

Retry

Obtient les options de nouvelle tentative du client.

(Hérité de ClientOptions)
RetryPolicy

Obtient ou définit la stratégie à utiliser pour les nouvelles tentatives. Si une stratégie est spécifiée, elle est utilisée à la place de la Retry propriété . Le RetryPolicy type peut être dérivé de pour modifier le comportement par défaut sans avoir à implémenter entièrement la logique de nouvelle tentative. Si Process(HttpMessage, ReadOnlyMemory<HttpPipelinePolicy>) est remplacé ou si un personnalisé HttpPipelinePolicy est spécifié, il incombe à l’implémenteur de mettre à jour les ProcessingContext valeurs.

(Hérité de ClientOptions)
Transport

HttpPipelineTransport à utiliser pour ce client. La valeur par défaut est une instance de HttpClientTransport.

(Hérité de ClientOptions)
Version

Obtient le QueueClientOptions.ServiceVersion de l’API de service utilisée lors de l’envoi de demandes. Pour plus d’informations, consultez Contrôle de version pour les services de stockage Azure.

Méthodes

AddPolicy(HttpPipelinePolicy, HttpPipelinePosition)

Ajoute une HttpPipeline stratégie dans le pipeline client. La position de la stratégie dans le pipeline est contrôlée par le position paramètre . Si vous souhaitez que la stratégie s’exécute une fois par requête client, utilisez PerCall sinon pour PerRetry exécuter la stratégie pour chaque nouvelle tentative. Notez que le même instance de policy serait ajouté à tous les pipelines du client construits à l’aide de cet ClientOptions objet.

(Hérité de ClientOptions)

Événements

MessageDecodingFailed

facultatif. Effectue les tâches nécessaires lorsqu’un message est reçu ou atteint un pic à partir de la file d’attente, mais ne peut pas être décodé.

Un tel message peut être reçu ou atteint un pic lorsque QueueClient est attendu certain QueueMessageEncoding , mais il existe un autre producteur qui n’encode pas les messages de la manière attendue. C’est-à-dire que la file d’attente contient des messages avec un encodage différent.

QueueMessageDecodingFailedEventArgs contient QueueClient qui a reçu le message ainsi ReceivedMessage que ou PeekedMessage avec le corps brut, c’est-à-dire qu’aucun décodage ne sera tenté afin que le corps puisse être inspecté comme cela a été reçu de la file d’attente.

Ne QueueClient tente pas de supprimer le message de la file d’attente. Par conséquent, cette gestion doit être incluse dans le gestionnaire d’événements lui-même.

Le gestionnaire est potentiellement appelé par les API de réception et d’aperçu synchrones et asynchrones. Par conséquent, l’implémentation du gestionnaire doit s’aligner sur QueueClient les API utilisées. Découvrez SyncAsyncEventHandler<T> comment implémenter correctement le gestionnaire. L’exemple ci-dessous montre un gestionnaire avec tous les cas possibles explorés.

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);

S’applique à