Condividi tramite


Eccezioni di messaggistica di Hub eventi - .NET (legacy)

Questa sezione elenca le eccezioni .NET generate dalle API .NET Framework.

Importante

Alcune delle eccezioni elencate nell'articolo si applicano solo alla libreria .NET di Hub eventi legacy. Ad esempio: Eccezioni Microsoft.ServiceBus.* .

Per informazioni su EventHubsException generato dalla nuova libreria .NET, vedere EventHubsException - .NET

Il 30 settembre 2026 verranno ritirati le librerie bus di servizio di Azure SDK WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus e com.microsoft.azure.servicebus, che non sono conformi alle linee guida di Azure SDK. Il supporto del protocollo SBMP verrà terminato, quindi non sarà più possibile usare questo protocollo dopo il 30 settembre 2026. Eseguire la migrazione alle librerie più recenti di Azure SDK, che offrono aggiornamenti critici della sicurezza e funzionalità migliorate, prima di tale data.

Anche se le librerie precedenti possono ancora essere usate oltre il 30 settembre 2026, non riceveranno più il supporto e gli aggiornamenti ufficiali da Microsoft. Per altre informazioni, vedere l'annuncio di ritiro del supporto.

Categorie di eccezioni

Le API .NET di Hub eventi generano eccezioni che possono rientrare nelle categorie seguenti, insieme all'azione associata che è possibile eseguire per provare a risolverle:

Tipi di eccezioni

La tabella seguente elenca i tipi di eccezioni di messaggistica, ne riporta le possibili cause, e indica l'azione suggerita che è possibile eseguire.

Tipo di eccezione Descrizione/Causa/Esempi Azione suggerita Nota sulla ripetizione automatica/immediata
TimeoutException Il server non ha risposto all'operazione richiesta entro il tempo specificato, controllato da OperationTimeout. Il server può aver completato l'operazione richiesta. Questa eccezione può verificarsi a causa di ritardi di rete o di altre infrastrutture. 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.
InvalidOperationException L'operazione utente richiesta non è consentita all'interno del server o del servizio. Per informazioni dettagliate, vedere il messaggio di eccezione. Ad esempio, Complete genera questa eccezione se il messaggio è stato ricevuto in modalità ReceiveAndDelete . Controllare il codice e la documentazione. Assicurarsi che l'operazione richiesta sia valida. Riprovare non sarà utile.
OperationCanceledException È 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 le operazioni su un oggetto eliminato. Riprovare non sarà utile.
UnauthorizedAccessException L'oggetto TokenProvider non è riuscito ad acquisire un token, il token non è valido o il token 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 Controllo di accesso. In alcuni casi può essere utile ripetere l'operazione; aggiungere al codice la logica di ripetizione dei tentativi.
ArgumentException
ArgumentNullException
ArgumentOutOfRangeException
Uno o più argomenti forniti al metodo non sono validi. L'URI fornito a NamespaceManager o Create contiene 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.
Microsoft.ServiceBus.Messaging MessagingEntityNotFoundException

Microsoft.Azure.EventHubs MessagingEntityNotFoundException
L'entità associata all'operazione non esiste o è stata eliminata. Assicurarsi che l'entità esista. Ripetere l'operazione non serve.
MessagingCommunicationException Il client non è in grado di stabilire una connessione a Hub eventi. Assicurarsi che il nome host fornito sia corretto e l'host sia raggiungibile. Se sono presenti problemi di connettività intermittente, può essere utile ripetere l'operazione.
Microsoft.ServiceBus.Messaging ServerBusyException

Microsoft.Azure.EventHubs ServerBusyException
In questo momento il servizio non è in grado di elaborare la richiesta. Il client può attendere per un certo periodo di tempo ed è quindi opportuno ripetere l'operazione.
Vedere ServerBusyException.
Il client può riprovare dopo un determinato intervallo. Se viene generata un'eccezione diversa, controllare il comportamento di ripetizione del tentativo della nuova eccezione.
MessagingException Eccezione di messaggistica generica che può essere generata nei casi seguenti: È stato eseguito un tentativo di creare una classe QueueClient usando un nome o un percorso appartenente a un tipo di entità diverso, ad esempio un argomento. È stato eseguito un tentativo di inviare un messaggio di dimensioni superiori a 1 MB. Si è verificato un errore nel server o nel servizio durante l'elaborazione della richiesta. Per informazioni dettagliate, vedere il messaggio di eccezione. Si tratta in genere di un'eccezione temporanea. Controllare il codice e verificare che per il corpo del messaggio siano stati usati solo oggetti serializzabili (oppure usare un serializzatore personalizzato). Consultare la documentazione per identificare i tipi di valori delle proprietà supportati e usare solo quelli. Controllare la proprietà IsTransient . Se è true, è possibile ripetere l'operazione. Il comportamento di ripetizione dei tentativi non è definito e ripetere l'operazione può non essere utile.
MessagingEntityAlreadyExistsException È stato eseguito un tentativo di creare un'entità con un nome già usato da un'altra entità dello stesso spazio dei nomi del servizio. Eliminare l'entità esistente o scegliere un nome diverso per l'entità da creare. Ripetere l'operazione non serve.
QuotaExceededException L'entità di messaggistica ha raggiunto le dimensioni massime consentite. Questa eccezione può verificarsi se a livello di gruppo di consumer è già stato aperto il numero massimo di ricevitori, ovvero 5. 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.
MessagingEntityDisabledException È stata inoltrata una richiesta per un'operazione di runtime su un'entità disattivata. Attivare l'entità. Se nel frattempo l'entità è stata attivata, può essere utile ripetere l'operazione.
Microsoft.ServiceBus.Messaging MessageSizeExceededException

Microsoft.Azure.EventHubs MessageSizeExceededException
Un payload del messaggio supera il limite di 1 MB. Questo limite di 1 MB è relativo al messaggio totale, che può includere le proprietà di sistema e qualsiasi 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.

Questa eccezione può verificarsi se a livello di gruppo di consumer è già stato aperto il numero massimo di ricevitori (5).

Event Hubs

Hub eventi ha un limite di 20 gruppi di consumer per hub eventi. Quando si tenta di creare più gruppi, si riceve un'eccezione di tipo QuotaExceededException.

TimeoutException

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

Per Hub eventi, il timeout è specificato come parte della stringa di connessione o tramite ServiceBusConnectionStringBuilder. Il messaggio di errore stesso può variare, ma contiene sempre il valore di timeout specificato per l'operazione corrente.

Si prevede il verificarsi di timeout durante o tra le operazioni di manutenzione, ad esempio gli aggiornamenti del servizio Hub eventi o gli aggiornamenti del sistema operativo sulle risorse che eseguono il servizio. Durante gli aggiornamenti del sistema operativo, le entità vengono spostate e i nodi vengono aggiornati o riavviati, causando timeout. Per informazioni dettagliate sul contratto di servizio per il servizio Hub eventi di Azure, vedere Contratto di servizio per Hub eventi.

Cause comuni

Per questo errore, esistono due cause comuni: una configurazione errata o un errore temporaneo del servizio.

  • Configurazione errata: 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 codice contiene un valore troppo piccolo. La condizione dell'utilizzo della rete e della CPU può influire sul tempo necessario per il completamento di una determinata operazione, quindi il timeout dell'operazione non deve essere impostato su un valore ridotto.
  • Errore temporaneo del servizio : a volte il servizio di Hub eventi può subire ritardi nell'elaborazione delle richieste, ad esempio durante periodi di traffico elevato. In questi casi, è possibile ritentare l'operazione dopo un ritardo fino a quando l'operazione ha esito positivo. Se la stessa operazione continua ad avere esito negativo dopo diversi tentativi, visitare il sito sullo stato dei servizi Azure per verificare se esistono casi noti di interruzioni del servizio.

ServerBusyException

Microsoft.ServiceBus.Messaging.ServerBusyException o Microsoft.Azure.EventHubs.ServerBusyException indicano che il server è sovraccarico. Esistono due codici di errore relativi a questa eccezione.

Codice di errore 50002

Questo errore può verificarsi per uno dei due motivi:

  • Il carico non viene distribuito uniformemente in tutte le partizioni nell'hub eventi e una partizione raggiunge la limitazione dell'unità elaborate locale.

    Soluzione: la revisione della strategia di distribuzione delle partizioni o il tentativo di EventHubClient.Send(eventDataWithOutPartitionKey) potrebbero risultare utili.

  • Lo spazio dei nomi di Hub eventi non dispone di unità elaborate sufficienti .È possibile controllare la schermata Metriche nella finestra dello spazio dei nomi di Hub eventi nella portale di Azure per confermare. Il portale mostra informazioni aggregate (1 minuto), ma viene misurata la velocità effettiva in tempo reale, quindi si tratta solo di una stima.

    Risoluzione: l'aumento delle unità elaborate nello spazio dei nomi può essere utile.

    È possibile configurare le unità elaborate nella pagina Scalabilità o Panoramica della pagina dello spazio dei nomi di Hub eventi nella portale di Azure. In alternativa, è possibile usare l'aumento automatico, che aumenta automaticamente aumentando il numero di unità elaborate, per soddisfare le esigenze di utilizzo.

    Le unità elaborate (UR) si applicano a tutti gli hub eventi in uno spazio dei nomi di Hub eventi. Significa che le unità elaborate vengono acquistate a livello di spazio dei nomi e condivise con l'hub eventi nello spazio. Ogni unità elaborata conferisce allo spazio dei nomi le capacità seguenti:

    • Fino a 1 MB al secondo di eventi in ingresso (eventi inviati a un hub eventi), ma non più di 1000 eventi in ingresso, operazioni di gestione o chiamate API di controllo al secondo.
    • Fino a 2 MB al secondo di eventi in uscita (gli eventi utilizzati da un hub eventi), ma non più di 4096 eventi in uscita.
    • Fino a 84 GB di spazio di archiviazione eventi (sufficiente per il periodo di conservazione predefinito di 1 ora).

    Nella sezione Mostra metriche della pagina Panoramica passare alla scheda Velocità effettiva. Selezionare il grafico per aprirlo in una finestra più grande con intervalli di 1 minuto sull'asse x. Esaminare i valori di picco e dividerli per 60 per ottenere byte in ingresso/secondo o byte in uscita/secondo. Usare un approccio simile per calcolare il numero di richieste al secondo nelle ore di punta nella scheda Richieste .

    Se vengono visualizzati valori superiori al numero di unità elaborate * limiti (1 MB al secondo per l'ingresso o 1000 richieste di ingresso al secondo, 2 MB al secondo per l'uscita), aumentare il numero di unità elaborate usando la pagina Scala (nel menu a sinistra) di uno spazio dei nomi di Hub eventi per aumentare manualmente o per usare la funzionalità Aumento automatico di Hub eventi. È possibile aumentare le prestazioni fino a 40 unità elaborate quando si ridimensiona manualmente o si ridimensiona automaticamente lo spazio dei nomi.

Codice errore 50008

Questo errore si verifica raramente. Si verifica quando il contenitore che esegue il codice per lo spazio dei nomi è insufficiente per la CPU, occorrono pochi secondi prima che il bilanciamento del carico dell'Hub eventi inizi.

Risoluzione: limitare le chiamate al metodo GetRuntimeInformation. Hub eventi di Azure supporta fino a 50 chiamate al secondo per gruppo di consumer a GetRuntimeInfo al secondo. Una volta raggiunto il limite, è possibile che venga visualizzata un'eccezione simile alla seguente:

ExceptionId: 00000000000-00000-0000-a48a-9c908fbe84f6-ServerBusyException: The request was terminated because the namespace 75248:aaa-default-eventhub-ns-prodb2b is being throttled. Error code : 50008. Please wait 10 seconds and try again.

Passaggi successivi

Per ulteriori informazioni su Hub eventi visitare i collegamenti seguenti: