Logica di ripetizione dei tentativi in Media Services SDK for .NET

Quando si usano i servizi di Microsoft Azure, possono verificarsi errori temporanei. Se si verifica un errore temporaneo, nella maggior parte dei casi, dopo alcune ripetizioni dei tentativi l'operazione ha esito positivo. Media Services SDK for .NET implementa la logica di ripetizione dei tentativi per gestire gli errori temporanei associati a eccezioni ed errori causati da richieste Web, dall'esecuzione di query, dal salvataggio delle modifiche e dalle operazioni di archiviazione. Per impostazione predefinita, Media Services SDK for .NET esegue quattro ripetizioni dei tentativi prima di rigenerare l'eccezione all'applicazione. Il codice nell'applicazione deve quindi gestire questa eccezione correttamente.

Di seguito sono riportate brevi indicazioni dei criteri di richiesta Web, archiviazione, query e salvataggio di modifiche:

  • I criteri di archiviazione vengono usati per le operazioni di archiviazione BLOB (caricamenti o download di file di asset).
  • I criteri di richiesta Web vengono usati per le richieste Web generiche (ad esempio, per ottenere un token di autenticazione e la risoluzione dell'endpoint cluster degli utenti).
  • I criteri di query vengono usati per l'interrogazione di entità da REST, ad esempio mediaContext.Assets.Where(…).
  • I criteri di salvataggio delle modifiche vengono usati per eseguire qualsiasi operazione che modifica i dati all'interno del servizio (ad esempio, creazione o aggiornamento di un'entità, chiamata di una funzione del servizio per un'operazione).

    Questo argomento elenca i tipi di eccezione e i codici di errore che vengono gestiti da Media Services SDK for .NET.

Tipi di eccezioni

La tabella seguente descrive le eccezioni che Media Services SDK for .NET gestisce o meno per alcune operazioni che possono causare errori temporanei.

Eccezione Richiesta Web Archiviazione Query Salvataggio di modifiche
WebException
Per altre informazioni, vedere la sezione Codici di stato di WebException.
DataServiceClientException
Per altre informazioni, vedere Codici di stato dell'errore HTTP.
No
DataServiceQueryException
Per altre informazioni, vedere Codici di stato dell'errore HTTP.
No
DataServiceRequestException
Per altre informazioni, vedere Codici di stato dell'errore HTTP.
No
DataServiceTransportException No No
TimeoutException No
SocketException
StorageException No No No
IOException No No No

Codici di stato di WebException

La tabella seguente mostra i codici di errore WebException per cui viene implementata la logica di ripetizione dei tentativi. L'enumerazione WebExceptionStatus definisce i codici di stato.

Stato Richiesta Web Archiviazione Query Salvataggio di modifiche
ConnectFailure
NameResolutionFailure
ProxyNameResolutionFailure
SendFailure
PipelineFailure No
ConnectionClosed No
KeepAliveFailure No
UnknownError No
ReceiveFailure No
RequestCanceled No
Timeout No
ProtocolError
La ripetizione dei tentativi in ProtocolError viene controllata mediante la gestione del codice di stato HTTP. Per altre informazioni, vedere Codici di stato dell'errore HTTP.

Codici di stato dell'errore HTTP

Quando le operazioni di query e salvataggio di modifiche generano DataServiceClientException, DataServiceQueryException o DataServiceQueryException, nella proprietà StatusCode viene restituito il codice di stato dell'errore HTTP. La tabella seguente mostra i codici di errore per cui viene implementata la logica di ripetizione dei tentativi.

Stato Richiesta Web Archiviazione Query Salvataggio di modifiche
401 No No No
403 No
Gestione della ripetizione dei tentativi con attese più lunghe.
No No
408
429
500 No
502 No
503
504 No

Se si vuole esaminare l'implementazione effettiva della logica di ripetizione dei tentativi di Media Services SDK for .NET, vedere azure-sdk-for-media-services.

Passaggi successivi

Altre informazioni sui percorsi di apprendimento di Servizi multimediali di Azure:

Fornire commenti e suggerimenti

Usare il forum di suggerimenti degli utenti per fornire commenti e suggerimenti su come migliorare Servizi multimediali di Azure. È anche possibile passare direttamente a una delle categorie seguenti: