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

Quando si usano i servizi di Microsoft Azure, possono verificarsi errori temporanei.When working with Microsoft Azure services, transient faults can occur. Se si verifica un errore temporaneo, nella maggior parte dei casi, dopo alcune ripetizioni dei tentativi l'operazione ha esito positivo.If a transient fault occurs, in most cases, after a few retries the operation succeeds. 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.The Media Services SDK for .NET implements the retry logic to handle transient faults associated with exceptions and errors that are caused by web requests, executing queries, saving changes, and storage operations. Per impostazione predefinita, Media Services SDK for .NET esegue quattro ripetizioni dei tentativi prima di rigenerare l'eccezione all'applicazione.By default, the Media Services SDK for .NET executes four retries before re-throwing the exception to your application. Il codice nell'applicazione deve quindi gestire questa eccezione correttamente.The code in your application must then handle this exception properly.

Di seguito sono riportate brevi indicazioni dei criteri di richiesta Web, archiviazione, query e salvataggio di modifiche:The following is a brief guideline of Web Request, Storage, Query, and SaveChanges policies:

  • I criteri di archiviazione vengono usati per le operazioni di archiviazione BLOB (caricamenti o download di file di asset).The Storage policy is used for blob storage operations (uploads or download of asset files).
  • 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).The Web Request policy is used for generic web requests (for example, for getting an authentication token and resolving the users cluster endpoint).
  • I criteri di query vengono usati per l'interrogazione di entità da REST, ad esempio mediaContext.Assets.Where(…).The Query policy is used for querying entities from REST (for example, 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).The SaveChanges policy is used for doing anything that changes data within the service (for example, creating an entity updating an entity, calling a service function for an operation).

    Questo argomento elenca i tipi di eccezione e i codici di errore che vengono gestiti da Media Services SDK for .NET.This topic lists exception types and error codes that are handled by the Media Services SDK for .NET retry logic.

Tipi di eccezioniException types

La tabella seguente descrive le eccezioni che Media Services SDK for .NET gestisce o meno per alcune operazioni che possono causare errori temporanei.The following table describes exceptions that the Media Services SDK for .NET handles or does not handle for some operations that may cause transient faults.

EccezioneException Richiesta WebWeb Request ArchiviazioneStorage QueryQuery Salvataggio di modificheSaveChanges
WebExceptionWebException
Per altre informazioni, vedere la sezione Codici di stato di WebException.For more information, see the WebException status codes section.
Yes Yes Yes Yes
DataServiceClientExceptionDataServiceClientException
Per altre informazioni, vedere Codici di stato dell'errore HTTP.For more information, see HTTP error status codes.
NoNo Yes Yes Yes
DataServiceQueryExceptionDataServiceQueryException
Per altre informazioni, vedere Codici di stato dell'errore HTTP.For more information, see HTTP error status codes.
NoNo Yes Yes Yes
DataServiceRequestExceptionDataServiceRequestException
Per altre informazioni, vedere Codici di stato dell'errore HTTP.For more information, see HTTP error status codes.
NoNo Yes Yes Yes
DataServiceTransportExceptionDataServiceTransportException NoNo NoNo Yes Yes
TimeoutExceptionTimeoutException Yes Yes Yes NoNo
SocketExceptionSocketException Yes Yes Yes Yes
StorageExceptionStorageException NoNo Yes NoNo NoNo
IOExceptionIOException NoNo Yes NoNo NoNo

Codici di stato di WebExceptionWebException status codes

La tabella seguente mostra i codici di errore WebException per cui viene implementata la logica di ripetizione dei tentativi.The following table shows for which WebException error codes the retry logic is implemented. L'enumerazione WebExceptionStatus definisce i codici di stato.The WebExceptionStatus enumeration defines the status codes.

StatoStatus Richiesta WebWeb Request ArchiviazioneStorage QueryQuery Salvataggio di modificheSaveChanges
ConnectFailureConnectFailure Yes Yes Yes Yes
NameResolutionFailureNameResolutionFailure Yes Yes Yes Yes
ProxyNameResolutionFailureProxyNameResolutionFailure Yes Yes Yes Yes
SendFailureSendFailure Yes Yes Yes Yes
PipelineFailurePipelineFailure Yes Yes Yes NoNo
ConnectionClosedConnectionClosed Yes Yes Yes NoNo
KeepAliveFailureKeepAliveFailure Yes Yes Yes NoNo
UnknownErrorUnknownError Yes Yes Yes NoNo
ReceiveFailureReceiveFailure Yes Yes Yes NoNo
RequestCanceledRequestCanceled Yes Yes Yes NoNo
TimeoutTimeout Yes Yes Yes NoNo
ProtocolErrorProtocolError
La ripetizione dei tentativi in ProtocolError viene controllata mediante la gestione del codice di stato HTTP.The retry on ProtocolError is controlled by the HTTP status code handling. Per altre informazioni, vedere Codici di stato dell'errore HTTP.For more information, see HTTP error status codes.
Yes Yes Yes Yes

Codici di stato dell'errore HTTPHTTP error status codes

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.When Query and SaveChanges operations throw DataServiceClientException, DataServiceQueryException, or DataServiceQueryException, the HTTP error status code is returned in the StatusCode property. La tabella seguente mostra i codici di errore per cui viene implementata la logica di ripetizione dei tentativi.The following table shows for which error codes the retry logic is implemented.

StatoStatus Richiesta WebWeb Request ArchiviazioneStorage QueryQuery Salvataggio di modificheSaveChanges
401401 NoNo Yes NoNo NoNo
403403 NoNo Yes
Gestione della ripetizione dei tentativi con attese più lunghe.Handling retries with longer waits.
NoNo NoNo
408408 Yes Yes Yes Yes
429429 Yes Yes Yes Yes
500500 Yes Yes Yes NoNo
502502 Yes Yes Yes NoNo
503503 Yes Yes Yes Yes
504504 Yes Yes Yes NoNo

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.If you want to take a look at the actual implementation of the Media Services SDK for .NET retry logic, see azure-sdk-for-media-services.

Passaggi successiviNext steps

Altre informazioni sui percorsi di apprendimento di Servizi multimediali di Azure:Read about the Azure Media Services learning paths:

Fornire commenti e suggerimentiProvide feedback

Usare il forum di suggerimenti degli utenti per fornire commenti e suggerimenti su come migliorare Servizi multimediali di Azure.Use the User Voice forum to provide feedback and make suggestions on how to improve Azure Media Services. È anche possibile passare direttamente a una delle categorie seguenti:You also can go directly to one of the following categories: