Eccezioni del servizio di inoltro di AzureAzure Relay exceptions

Questo articolo elenca alcune eccezioni generate dalle API di inoltro di Azure.This article lists some exceptions that might be generated by the Azure Relay APIs. Il documento è soggetto a modifica ed è quindi opportuno controllare periodicamente la presenza di aggiornamenti.This reference is subject to change, so check back for updates.

Categorie di eccezioniException categories

Le eccezioni generate dalle API di inoltro rientrano nelle categorie seguenti.The Relay APIs generate exceptions that might fall into the following categories. Vengono consigliate anche le azioni per la risoluzione delle eccezioni.Also listed are suggested actions that you can take to help resolve the exceptions.

Tipi di eccezioniException types

La tabella seguente elenca i tipi di eccezioni di messaggistica, ne riporta le possibili causeThe following table lists messaging exception types and their causes. e consiglia l'azione da eseguire.It also notes suggested actions you can take to help resolve the exceptions.

Tipo di eccezioneException type DescrizioneDescription Azione suggeritaSuggested action Nota sulla ripetizione automatica o immediataNote on automatic or immediate retry
TimeoutTimeout Il server non ha risposto all'operazione richiesta entro l'intervallo di tempo specificato, controllato dalla proprietà OperationTimeout.The server did not respond to the requested operation within the specified time, which is controlled by OperationTimeout. Il server può aver completato l'operazione richiesta.The server might have completed the requested operation. L'eccezione può verificarsi a causa di ritardi a livello di rete o di infrastruttura.This can happen due to network or other infrastructure delays. Controllare lo stato del sistema per verificarne la coerenza e, se necessario, ripetere l'operazione.Check the system state for consistency, and then retry, if necessary. Vedere TimeoutException.See TimeoutException. In alcuni casi può essere utile ripetere l'operazione; aggiungere al codice la logica di ripetizione dei tentativi.Retry might help in some cases; add retry logic to code.
Operazione non validaInvalid Operation L'operazione richiesta dall'utente non è consentita nell'ambito del server o del servizio.The requested user operation is not allowed within the server or service. Per informazioni dettagliate, vedere il messaggio di eccezione.See the exception message for details. Controllare il codice e la documentazione.Check the code and the documentation. Assicurarsi che l'operazione richiesta sia valida.Make sure that the requested operation is valid. Ripetere l'operazione non serve.Retry will not help.
Operazione annullataOperation Canceled È stato eseguito un tentativo di richiamare un'operazione su un oggetto già chiuso, interrotto o eliminato.An attempt is made to invoke an operation on an object that has already been closed, aborted, or disposed. In alcuni casi rari, la transazione di ambiente è già stata eliminata.In rare cases, the ambient transaction is already disposed. Controllare il codice e assicurarsi che non richiami operazioni su un oggetto eliminato.Check the code and make sure it does not invoke operations on a disposed object. Ripetere l'operazione non serve.Retry will not help.
Accesso non autorizzatoUnauthorized Access L'oggetto TokenProvider non è riuscito ad acquisire un token oppure il token non è valido o non contiene le attestazioni necessarie per eseguire l'operazione.The TokenProvider object could not acquire a token, the token is invalid, or the token does not contain the claims required to perform the operation. Assicurarsi che il provider di token sia stato creato con i valori corretti.Make sure that the token provider is created with the correct values. Controllare la configurazione del servizio di controllo di accesso.Check the configuration of the Access Control service. In alcuni casi può essere utile ripetere l'operazione; aggiungere al codice la logica di ripetizione dei tentativi.Retry might help in some cases; add retry logic to code.
Eccezione di argomentoArgument Exception,
Argomento NullArgument Null,
Argomento non compreso nell'intervalloArgument Out Of Range
Si è verificato uno o più dei seguenti casi:One or more of the following has occurred:
Uno o più argomenti forniti al metodo non sono validi.One or more arguments supplied to the method are invalid.
L'URI fornito a NamespaceManager o a Create contiene uno o più segmenti di percorso.The URI supplied to NamespaceManager or Create contains one or more path segments.
Lo schema URI fornito a NamespaceManager o Create non è valido.The URI scheme supplied to NamespaceManager or Create is invalid.
Il valore della proprietà è maggiore di 32 KB.The property value is larger than 32 KB.
Controllare il codice chiamante e assicurarsi che gli argomenti siano corretti.Check the calling code and make sure the arguments are correct. Ripetere l'operazione non serve.Retry will not help.
Server occupatoServer Busy In questo momento il servizio non è in grado di elaborare la richiesta.Service is not able to process the request at this time. Il client può attendere per un certo periodo di tempo, quindi è opportuno ripetere l'operazione.The client can wait for a period of time, then retry the operation. Il client può eseguire nuovi tentativi dopo un intervallo specifico.The client might retry after a specific interval. Se viene generata un'eccezione diversa, controllare il comportamento di ripetizione del tentativo della nuova eccezione.If a retry results in a different exception, check the retry behavior of that exception.
Quota superataQuota Exceeded L'entità di messaggistica ha raggiunto le dimensioni massime consentite.The messaging entity has reached its maximum allowable size. Creare spazio nell'entità mediante la ricezione di messaggi dall'entità o dalle relative code secondarie.Create space in the entity by receiving messages from the entity or its subqueues. Vedere QuotaExceededException.See QuotaExceededException. Se nel frattempo sono stati rimossi i messaggi, può essere utile ripetere l'operazione.Retry might help if messages have been removed in the meantime.
Dimensione del messaggio superataMessage Size Exceeded Un payload del messaggio supera il limite di 256 KB.A message payload exceeds the 256-KB limit. Si noti che il limite di 256 KB è la dimensione totale del messaggio.Note that the 256-KB limit is the total message size. La dimensione totale dei messaggi può includere proprietà di sistema ed eventuali overhead .NET.The total message size can include system properties and any Microsoft .NET overhead. Ridurre le dimensioni del payload del messaggio e quindi ripetere l'operazione.Reduce the size of the message payload, then retry the operation. Ripetere l'operazione non serve.Retry will not help.

QuotaExceededExceptionQuotaExceededException

QuotaExceededException indica che è stata superata la quota di un'entità specifica.QuotaExceededException indicates that a quota for a specific entity has been exceeded.

Per l'inoltro, questa eccezione esegue il wrapping di System.ServiceModel.QuotaExceededException, il quale indica che è stato superato il numero massimo di listener per questo endpoint.For Relay, this exception wraps the System.ServiceModel.QuotaExceededException, which indicates that the maximum number of listeners has been exceeded for this endpoint. Questo numero è indicato nel valore MaximumListenersPerEndpoint del messaggio di eccezione.This is indicated in the MaximumListenersPerEndpoint value of the exception message.

TimeoutExceptionTimeoutException

Un'eccezione di tipo TimeoutException indica che un'operazione avviata dall'utente richiede più tempo rispetto al timeout dell'operazione.A TimeoutException indicates that a user-initiated operation is taking longer than the operation timeout.

Controllare il valore della proprietà ServicePointManager. DefaultConnectionLimit.Check the value of the ServicePointManager.DefaultConnectionLimit property. Il raggiungimento di questo limite può causare una TimeoutException.Hitting this limit also can cause a TimeoutException.

Per l'inoltro è possibile ricevere eccezioni di timeout alla prima apertura di una connessione di inoltro del mittente.For Relay, you might receive timeout exceptions when you first open a relay sender connection. Questa eccezione può essere dovuta a due cause comuni:There are two common causes for this exception:

  • Il valore OpenTimeout è troppo piccolo (anche di una frazione di secondo).The OpenTimeout value might be too small (if even by a fraction of a second).
  • Uno o più listener di inoltro locali non sono reattivi o si verificano problemi di regole firewall che non consentono ai listener di accettare nuove connessioni client e il valore OpenTimeout è minore di circa 20 secondi.An on-premises relay listener might be unresponsive (or it might encounter firewall rules issues that prohibit listeners from accepting new client connections), and the OpenTimeout value is less than about 20 seconds.

Esempio:Example:

'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.

Cause comuniCommon causes

Questo errore può essere dovuto a due cause comuni:There are two common causes for this error:

  • Configurazione non correttaIncorrect configuration

    Il valore di timeout dell'operazione potrebbe essere troppo ridotto per la condizione operativa.The operation timeout might be too small for the operational condition. Il valore predefinito per il timeout dell'operazione dell'SDK client è 60 secondi.The default value for the operation timeout in the client SDK is 60 seconds. Verificare se il valore nel codice è impostato su un valore troppo piccolo.Check to see whether the value in your code is set to something too small. Si noti che l'uso della CPU e la condizione della rete possono incidere sul tempo necessario per completare un'operazione.Note that CPU usage and the condition of the network can affect the time it takes for an operation to complete. È consigliabile non impostare il timeout dell'operazione su un valore molto basso.It's a good idea not to set the operation timeout to a very small value.

  • Errore temporaneo del servizioTransient service error

    In alcuni casi per il servizio di inoltro potrebbero verificarsi ritardi nell'elaborazione delle richieste.Occasionally, the Relay service might experience delays in processing requests. Questo può accadere, ad esempio, durante i periodi di traffico elevato.This might happen, for example, during periods of high traffic. In questi casi, ritentare l'operazione dopo un ritardo fino a quando l'operazione non ha esito positivo.If this occurs, retry your operation after a delay, until the operation is successful. Se la stessa operazione ha ancora esito negativo dopo diversi tentativi, visitare il sito sullo stato dei servizi Azure per verificare se esistono casi noti di interruzioni del servizio.If the same operation continues to fail after multiple attempts, check the Azure service status site to see if there are known service outages.

Passaggi successiviNext steps