Compartilhar via


QueueClientOptions Classe

Definição

Fornece as opções de configuração do cliente para se conectar ao Armazenamento de Filas do Azure

public class QueueClientOptions : Azure.Core.ClientOptions
type QueueClientOptions = class
    inherit ClientOptions
Public Class QueueClientOptions
Inherits ClientOptions
Herança
QueueClientOptions
Derivado

Construtores

QueueClientOptions(QueueClientOptions+ServiceVersion)

Inicializa uma nova instância da classe QueueClientOptions.

Propriedades

Audience

Obtém ou define o Público-alvo a ser usado para autenticação com o AAD (Azure Active Directory). O público-alvo não é considerado ao usar uma chave compartilhada.

Diagnostics

Obtém as opções de diagnóstico do cliente.

(Herdado de ClientOptions)
EnableTenantDiscovery

Habilita a descoberta de locatário por meio do desafio de autorização quando o cliente está configurado para usar um TokenCredential. Quando habilitado, o cliente tentará uma solicitação inicial não autorizada para solicitar um desafio para descobrir o locatário correto para o recurso.

GeoRedundantSecondaryUri

Obtém ou define o armazenamento Uri secundário que pode ser lido para a conta de armazenamento se a conta estiver habilitada para RA-GRS.

Se essa propriedade for definida, o Uri secundário será usado para solicitações GET ou HEAD durante as novas tentativas. Se o status da resposta do Uri secundário for um 404, as novas tentativas subsequentes para a solicitação não usarão o URI secundário novamente, pois isso indica que o recurso pode não ter se propagado para lá ainda. Caso contrário, as novas tentativas subsequentes alternarão entre o URI primário e o secundário.

MessageEncoding

Obtém ou define uma codificação de mensagem que determina como Body é representada em solicitações e respostas HTTP. O padrão é None.

Retry

Obtém as opções de repetição do cliente.

(Herdado de ClientOptions)
RetryPolicy

Obtém ou define a política a ser usada para novas tentativas. Se uma política for especificada, ela será usada no lugar da Retry propriedade . O RetryPolicy tipo pode ser derivado de para modificar o comportamento padrão sem a necessidade de implementar totalmente a lógica de repetição. Se Process(HttpMessage, ReadOnlyMemory<HttpPipelinePolicy>) for substituído ou um personalizado HttpPipelinePolicy for especificado, será responsabilidade do implementador atualizar os ProcessingContext valores.

(Herdado de ClientOptions)
Transport

O HttpPipelineTransport a ser usado para este cliente. O padrão é uma instância do HttpClientTransport.

(Herdado de ClientOptions)
Version

Obtém o QueueClientOptions.ServiceVersion da API de serviço usada ao fazer solicitações. Para obter mais informações, consulte Controle de versão para os serviços de Armazenamento do Azure.

Métodos

AddPolicy(HttpPipelinePolicy, HttpPipelinePosition)

Adiciona uma HttpPipeline política ao pipeline do cliente. A posição da política no pipeline é controlada pelo position parâmetro . Se você quiser que a política seja executada uma vez por solicitação de cliente, use PerCall caso contrário, use PerRetry para executar a política para cada repetição. Observe que a mesma instância de policy seria adicionada a todos os pipelines do cliente construídos usando esse ClientOptions objeto .

(Herdado de ClientOptions)

Eventos

MessageDecodingFailed

Opcional. Executa as tarefas necessárias quando uma mensagem é recebida ou atingiu o pico da fila, mas não pode ser decodificada.

Essa mensagem pode ser recebida ou atingiu o pico quando QueueClient está esperando certa QueueMessageEncoding , mas há outro produtor que não está codificando mensagens da maneira esperada. Ou seja, a fila contém mensagens com codificação diferente.

QueueMessageDecodingFailedEventArgs contém QueueClient que recebeu a mensagem, bem como ReceivedMessage ou PeekedMessage com o corpo bruto, ou seja, nenhuma decodificação será tentada para que o corpo possa ser inspecionado como foi recebido da fila.

O QueueClient não tentará remover a mensagem da fila. Portanto, esse tratamento deve ser incluído no próprio manipulador de eventos.

O manipulador é potencialmente invocado por APIs de recebimento e espiamento síncronas e assíncronas. Portanto, a implementação do manipulador deve se alinhar às QueueClient APIs que estão sendo usadas. Confira SyncAsyncEventHandler<T> como implementar o manipulador corretamente. O exemplo a seguir mostra um manipulador com todos os casos possíveis 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);

Aplica-se a