Compartir a través de


QueueClientOptions Clase

Definición

Proporciona las opciones de configuración de cliente para conectarse a Azure Queue Storage.

public class QueueClientOptions : Azure.Core.ClientOptions
type QueueClientOptions = class
    inherit ClientOptions
Public Class QueueClientOptions
Inherits ClientOptions
Herencia
QueueClientOptions
Derivado

Constructores

QueueClientOptions(QueueClientOptions+ServiceVersion)

Inicializa una nueva instancia de la clase QueueClientOptions.

Propiedades

Audience

Obtiene o establece la audiencia que se va a usar para la autenticación con Azure Active Directory (AAD). La audiencia no se tiene en cuenta cuando se usa una clave compartida.

Diagnostics

Obtiene las opciones de diagnóstico de cliente.

(Heredado de ClientOptions)
EnableTenantDiscovery

Habilita la detección de inquilinos mediante el desafío de autorización cuando el cliente está configurado para usar un tokenCredential. Cuando se habilita, el cliente intentará una solicitud inicial no autorizada para solicitar un desafío con el fin de detectar el inquilino correcto para el recurso.

GeoRedundantSecondaryUri

Obtiene o establece el almacenamiento Uri secundario desde el que se puede leer para la cuenta de almacenamiento si la cuenta está habilitada para RA-GRS.

Si se establece esta propiedad, el URI secundario se usará para las solicitudes GET o HEAD durante los reintentos. Si el estado de la respuesta del URI secundario es 404, los reintentos posteriores de la solicitud no volverán a usar el URI secundario, ya que esto indica que es posible que el recurso no se haya propagado todavía. De lo contrario, los reintentos posteriores alternarán entre el URI principal y el secundario.

MessageEncoding

Obtiene o establece una codificación de mensajes que determina cómo Body se representa en las solicitudes y respuestas HTTP. El valor predeterminado es None.

Retry

Obtiene las opciones de reintento del cliente.

(Heredado de ClientOptions)
RetryPolicy

Obtiene o establece la directiva que se va a usar para los reintentos. Si se especifica una directiva, se usará en lugar de la Retry propiedad . El RetryPolicy tipo se puede derivar de para modificar el comportamiento predeterminado sin necesidad de implementar completamente la lógica de reintento. Si Process(HttpMessage, ReadOnlyMemory<HttpPipelinePolicy>) se invalida o se especifica un personalizado HttpPipelinePolicy , es responsabilidad del implementador actualizar los ProcessingContext valores.

(Heredado de ClientOptions)
Transport

que HttpPipelineTransport se va a usar para este cliente. El valor predeterminado es una instancia de HttpClientTransport.

(Heredado de ClientOptions)
Version

Obtiene la QueueClientOptions.ServiceVersion propiedad de la API de servicio que se usa al realizar solicitudes. Para obtener más información, consulte . Control de versiones para los servicios de Azure Storage.

Métodos

AddPolicy(HttpPipelinePolicy, HttpPipelinePosition)

Agrega una HttpPipeline directiva a la canalización de cliente. El parámetro controla la posición de la directiva en la position canalización. Si desea que la directiva se ejecute una vez por solicitud de cliente, use PerCallPerRetry de lo contrario para ejecutar la directiva para cada reintento. Tenga en cuenta que la misma instancia de policy se agregaría a todas las canalizaciones de cliente construidas con este ClientOptions objeto .

(Heredado de ClientOptions)

Eventos

MessageDecodingFailed

Opcional. Realiza las tareas necesarias cuando se recibe o alcanza un mensaje de la cola, pero no se puede descodificar.

Este mensaje se puede recibir o llegar al máximo cuando QueueClient se espera cierta, QueueMessageEncoding pero hay otro productor que no codifica los mensajes de la manera esperada. Es decir, la cola contiene mensajes con codificación diferente.

QueueMessageDecodingFailedEventArgs contiene QueueClient que ha recibido el mensaje, así como ReceivedMessage o PeekedMessage con el cuerpo sin procesar, es decir, no se intentará descodificar para que el cuerpo se pueda inspeccionar tal como se ha recibido de la cola.

QueueClient no intentará quitar el mensaje de la cola. Por lo tanto, este control debe incluirse en el propio controlador de eventos.

El controlador se invoca potencialmente mediante la recepción sincrónica y asincrónica y las API de inspección. Por lo tanto, la implementación del controlador debe alinearse con QueueClient las API que se usan. Vea SyncAsyncEventHandler<T> cómo implementar el controlador correctamente. En el ejemplo siguiente se muestra un controlador con todos los casos posibles explorados.

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

Se aplica a