EventHubsException - .NET

Un evento EventHubsException viene attivato quando un'operazione specifica per Hub eventi ha causato un problema, inclusi entrambi gli errori all'interno del servizio e specifici del client.

Informazioni sulle eccezioni

L'eccezione include le informazioni contestuali seguenti per comprendere il contesto dell'errore e la relativa gravità relativa.

  • IsTransient: identifica se l'eccezione è considerata recuperabile o meno. Nel caso in cui fosse considerato temporaneo, i criteri di ripetizione appropriati sono già stati applicati e i tentativi non sono riusciti.
  • Motivo: fornisce un set di motivi noti per l'errore che aiuta a classificare e chiarire la causa radice. Questi motivi sono destinati a consentire l'applicazione del filtro delle eccezioni e altre logiche durante l'ispezione del testo di un messaggio di eccezione non sarebbe ideale. Alcuni motivi di errore chiave sono:
    • Client Chiuso: si verifica quando un client hub eventi che è già stato chiuso o eliminato. È consigliabile controllare il codice dell'applicazione per assicurarsi che gli oggetti dalla libreria client di Hub eventi vengano creati e chiusi nell'ambito previsto.
    • Timeout del servizio: indica che il servizio Hub eventi non ha risposto a un'operazione entro il tempo previsto. Questo problema potrebbe essere stato causato da un problema di rete temporaneo o di servizio. Il servizio Hub eventi può o non aver completato correttamente la richiesta; lo stato non è noto. È consigliabile tentare di verificare lo stato corrente e riprovare se necessario.
    • Quota superata: indica che sono presenti troppe operazioni di lettura attive per un singolo gruppo di consumer. Questo limite dipende dal livello dello spazio dei nomi hub eventi e il passaggio a un livello superiore potrebbe essere necessario. Un'alternativa consiste nel creare gruppi di consumer aggiuntivi e assicurarsi che il numero di letture client consumer per qualsiasi gruppo sia compreso nel limite. Per altre informazioni, vedere Hub eventi di Azure quote e limiti.
    • Dimensione messaggio superata: i dati dell'evento come dimensione massima consentiti per un singolo evento e un batch di eventi. Include i dati dell'evento e tutti i metadati e il sovraccarico del sistema associati. Per risolvere questo errore, ridurre il numero di eventi inviati in un batch o ridurre le dimensioni dei dati inclusi nel messaggio. Poiché i limiti delle dimensioni sono soggetti a modifiche, vedere Hub eventi di Azure quote e limiti per specifiche.
    • Consumer Disconnesso: un client consumer è stato disconnesso dal servizio Hub eventi dall'istanza di Hub eventi. In genere si verifica quando un consumer con un livello di proprietario superiore asserisce la proprietà su una partizione e un gruppo di consumer.
    • Risorsa non trovata: il servizio Hub eventi non è riuscito a trovare una risorsa, ad esempio un hub eventi, un gruppo di consumer o una partizione. Potrebbe essere stato eliminato o che si è verificato un problema con il servizio Hub eventi stesso.

Gestione delle eccezioni

È possibile reagire a un errore specifico per l'evento EventHubException in diversi modi. Un modo consiste nell'applicare una clausola di filtro eccezioni come parte del blocco catch.

try
{
    // Read events using the consumer client
}
catch (EventHubsException ex) when 
    (ex.Reason == EventHubsException.FailureReason.ConsumerDisconnected)
{
    // Take action based on a consumer being disconnected
}

Passaggi successivi

Esistono altre eccezioni documentate nell'articolo legacy. Alcuni di essi si applicano solo alla libreria client .NET di Hub eventi legacy.