Eccezioni del servizio di inoltro di Azure

Questo articolo elenca alcune eccezioni generate dalle API di inoltro di Azure. Il documento è soggetto a modifica ed è quindi opportuno controllare periodicamente la presenza di aggiornamenti.

Categorie di eccezioni

Le eccezioni generate dalle API di inoltro rientrano nelle categorie seguenti. Vengono consigliate anche le azioni per la risoluzione delle eccezioni.

Tipi di eccezioni

La tabella seguente elenca i tipi di eccezioni di messaggistica, ne riporta le possibili cause e consiglia l'azione da eseguire.

Tipo di eccezione Descrizione Azione suggerita Nota sulla ripetizione automatica o immediata
Timeout Il server non ha risposto all'operazione richiesta entro l'intervallo di tempo specificato, controllato dalla proprietà OperationTimeout. Il server può aver completato l'operazione richiesta. L'eccezione può verificarsi a causa di ritardi a livello di rete o di infrastruttura. Controllare lo stato del sistema per verificarne la coerenza e, se necessario, ripetere l'operazione. Vedere TimeoutException. In alcuni casi può essere utile ripetere l'operazione; aggiungere al codice la logica di ripetizione dei tentativi.
Operazione non valida L'operazione richiesta dall'utente non è consentita nell'ambito del server o del servizio. Per informazioni dettagliate, vedere il messaggio di eccezione. Controllare il codice e la documentazione. Assicurarsi che l'operazione richiesta sia valida. Ripetere l'operazione non serve.
Operazione annullata È stato eseguito un tentativo di richiamare un'operazione su un oggetto già chiuso, interrotto o eliminato. In alcuni casi rari, la transazione di ambiente è già stata eliminata. Controllare il codice e assicurarsi che non richiami operazioni su un oggetto eliminato. Ripetere l'operazione non serve.
Accesso non autorizzato L'oggetto TokenProvider non è riuscito ad acquisire un token oppure il token non è valido o non contiene le attestazioni necessarie per eseguire l'operazione. Assicurarsi che il provider di token sia stato creato con i valori corretti. Controllare la configurazione del servizio di controllo di accesso. In alcuni casi può essere utile ripetere l'operazione; aggiungere al codice la logica di ripetizione dei tentativi.
Eccezione di argomento
Argomento Null
Argomento non compreso nell'intervallo
Si è verificato uno o più dei seguenti casi:
Uno o più argomenti forniti al metodo non sono validi.
L'URI fornito a NamespaceManager o a Create contiene uno o più segmenti di percorso.
Lo schema URI fornito a NamespaceManager o Create non è valido.
Il valore della proprietà è maggiore di 32 KB.
Controllare il codice chiamante e assicurarsi che gli argomenti siano corretti. Ripetere l'operazione non serve.
Server occupato In questo momento il servizio non è in grado di elaborare la richiesta. Il client può attendere per un certo periodo di tempo, quindi è opportuno ripetere l'operazione. Il client può eseguire nuovi tentativi dopo un intervallo specifico. Se viene generata un'eccezione diversa, controllare il comportamento di ripetizione del tentativo della nuova eccezione.
Quota superata L'entità di messaggistica ha raggiunto le dimensioni massime consentite. Creare spazio nell'entità mediante la ricezione di messaggi dall'entità o dalle relative code secondarie. Vedere QuotaExceededException. Se nel frattempo sono stati rimossi i messaggi, può essere utile ripetere l'operazione.
Dimensione del messaggio superata Un payload del messaggio supera il limite di 256 KB. Si noti che il limite di 256 KB è la dimensione totale del messaggio. La dimensione totale dei messaggi può includere proprietà di sistema ed eventuali overhead .NET. Ridurre le dimensioni del payload del messaggio e quindi ripetere l'operazione. Ripetere l'operazione non serve.

QuotaExceededException

QuotaExceededException indica che è stata superata la quota di un'entità specifica.

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. Questo numero è indicato nel valore MaximumListenersPerEndpoint del messaggio di eccezione.

TimeoutException

Un'eccezione di tipo TimeoutException indica che un'operazione avviata dall'utente richiede più tempo rispetto al timeout dell'operazione.

Controllare il valore della proprietà ServicePointManager. DefaultConnectionLimit. Il raggiungimento di questo limite può causare una TimeoutException.

Per l'inoltro è possibile ricevere eccezioni di timeout alla prima apertura di una connessione di inoltro del mittente. Questa eccezione può essere dovuta a due cause comuni:

  • Il valore OpenTimeout è troppo piccolo (anche di una frazione di secondo).
  • 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.

Esempio:

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

Questo errore può essere dovuto a due cause comuni:

  • Configurazione non corretta

    Il valore di timeout dell'operazione potrebbe essere troppo ridotto per la condizione operativa. Il valore predefinito per il timeout dell'operazione dell'SDK client è 60 secondi. Verificare se il valore nel codice è impostato su un valore troppo piccolo. Si noti che l'uso della CPU e la condizione della rete possono incidere sul tempo necessario per completare un'operazione. È consigliabile non impostare il timeout dell'operazione su un valore molto basso.

  • Errore temporaneo del servizio

    In alcuni casi per il servizio di inoltro potrebbero verificarsi ritardi nell'elaborazione delle richieste. Questo può accadere, ad esempio, durante i periodi di traffico elevato. In questi casi, ritentare l'operazione dopo un ritardo fino a quando l'operazione non ha esito positivo. 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.

Passaggi successivi