Compartilhar via


Exceções de Retransmissão do Azure

Este artigo apresenta algumas exceções que podem ser geradas por APIs de Retransmissão do Azure. Essa referência está sujeita a alterações, então verifique se há atualizações.

Categorias de exceções

As APIs de Retransmissão geram exceções que podem se enquadrar nas categorias a seguir. Também são listadas as ações sugeridas que você pode adotar para ajudar a resolver as exceções.

Tipos de exceção

A tabela a seguir lista os tipos de exceção de mensagens e suas causas. Também indica as ações sugeridas que você pode executar para ajudar a resolver as exceções.

Tipo de exceção Descrição Ação sugerida Observação sobre repetição automática ou imediata
Tempo Limite O servidor não respondeu à operação solicitada dentro do tempo especificado que é controlado por OperationTimeout. O servidor pode ter concluído a operação solicitada. Pode ocorrer devido a atrasos na rede ou em outras infraestruturas. Verifique a consistência do estado do sistema e tente novamente, se necessário. Veja TimeoutException. Uma nova tentativa pode ajudar em alguns casos; Adicione lógica de repetição ao código.
Operação inválida A operação solicitada pelo usuário não é permitida no servidor ou serviço. Consulte a mensagem de exceção para obter detalhes. Verifique o código e a documentação. Verifique se a operação solicitada é válida. A repetição não ajuda.
Operação cancelada É feita uma tentativa de invocar uma operação em um objeto que já foi fechado, anulado ou descartado. Em casos raros, a transação de ambiente já foi descartada. Confira o código e verifique se ele não invoca operações em um objeto descartado. A repetição não ajuda.
Acesso não autorizado O objeto TokenProvider não conseguiu adquirir um token, o token é inválido ou o token não contém as declarações necessárias para executar a operação. Verifique se o provedor de token foi criado com os valores corretos. Verifique a configuração do Serviço de Controle de Acesso. Uma nova tentativa pode ajudar em alguns casos; Adicione lógica de repetição ao código.
Exceção de Argumento,
Argumento Nulo,
Argumento fora do intervalo
Uma ou mais dos seguintes problemas ocorreram:
Um ou mais argumentos fornecidos para o método são inválidos.
O URI fornecido para NamespaceManager ou Create contém um ou mais segmentos de caminho.
O esquema de URI fornecido para NamespaceManager ou Criar é inválido.
O valor da propriedade é maior do que 32 KB.
Verifique o código de chamada e certifique-se de que os argumentos estão corretos. A repetição não ajuda.
Servidor ocupado O serviço não pode processar a solicitação neste momento. O cliente pode esperar um período e então repetir a operação. O cliente pode repetir a operação após um intervalo específico. Se uma nova tentativa resultar em uma exceção diferente, verifique o comportamento de repetição dessa exceção.
Cota excedida A entidade de mensagens atingiu seu tamanho máximo permitido. Crie espaço na entidade ao receber mensagens da entidade ou de suas subfilas. Confira QuotaExceededException. Tentar novamente pode ajudar se as mensagens foram removidas nesse meio tempo.
Tamanho da mensagem excedido O conteúdo de uma mensagem excede o limite de 256 KB. O limite de 256 KB é o tamanho total da mensagem. O tamanho total da mensagem pode incluir propriedades do sistema e qualquer sobrecarga do Microsoft .NET. Reduza o tamanho da carga de mensagem e repita a operação. A repetição não ajuda.

QuotaExceededException

QuotaExceededException indica que uma cota para uma entidade específica foi excedida.

Para a Retransmissão, essa exceção envolve System.ServiceModel.QuotaExceededException, indicando que foi excedido o número máximo de ouvintes para esse ponto de extremidade. Está indicado no valor MaximumListenersPerEndpoint da mensagem de exceção.

TimeoutException

Um TimeoutException indica que uma operação iniciada pelo usuário está demorando mais do que o tempo limite da operação.

Verifique o valor da propriedade ServicePointManager.DefaultConnectionLimit. Atingir esse limite também pode causar uma TimeoutException.

Para a Retransmissão, você poderá receber exceções de tempo limite ao abrir pela primeira vez uma conexão de remetente de retransmissão. Há duas causas comuns para essa exceção:

  • O valor OpenTimeout pode ser muito pequeno (mesmo que apenas por uma fração de segundo).
  • Um ouvinte de retransmissão local pode não responder (ou encontrar problemas de regras de firewall que proíbam os ouvintes de aceitar novas conexões de cliente) e o valor OpenTimeout é menor que aproximadamente 20 segundos.

Exemplo:

'System.TimeoutException’: The operation did not complete within the allotted timeout of 00:00:10.
The time allotted to this operation may have been a portion of a longer timeout.

Causas comuns

Há duas causas comuns para esse erro:

  • Configuração incorreta

    O tempo limite da operação pode ser muito pequeno para a condição operacional. O valor padrão para o tempo limite da operação no SDK do cliente é de 60 segundos. Verifique se o valor em seu código está definido para um nível pequeno demais. O uso da CPU e a condição da rede podem afetar o tempo necessário para concluir uma operação. É uma boa ideia não definir o tempo limite da operação para um valor muito pequeno.

  • Erro de serviço transitório

    Ocasionalmente, o serviço Retransmissão pode sofrer atrasos no processamento de solicitações. Isso pode acontecer, por exemplo, durante períodos de tráfego intenso. Se ocorrer, repita a operação após um atraso, até que a operação seja bem-sucedida. Se a mesma operação continuar a falhar após várias tentativas, verifique o Site de status do serviço do Azure para ver se há interrupções de serviço conhecidas.

ConnectionLostException - NameRenewalFailed

Sintomas

Seu cliente recebe a exceção: Microsoft.Azure.Relay.ConnectionLostException : InternalServerError: NameRenewalFailed.

Causa

O serviço de Retransmissão do Azure reinicia as conexões do ouvinte a cada 24 horas. Este comportamento ocorre por design. O serviço de Retransmissão do Azure desconecta uma conexão ativa do ouvinte a cada 24 horas, e o ouvinte se reconectará ao servidor usando o mecanismo de repetição.

Solução

Nenhuma ação da sua parte, pois o ouvinte se reconecta automaticamente ao servidor. Se você perceber que seu ouvinte não está se conectando novamente, envie um tíquete para a equipe de suporte.

Próximas etapas