Docs Menu
Docs Home
/ /
Sincronizar datos

Gestionar errores de sincronización y tiempos de espera - SDK de .NET

La sincronización del dispositivo representa errores a través de Excepciones de sesión. Además de las propiedades de excepción estándar, tiene acceso a un código de error que contiene información sobre el tipo de error y le permite implementar una lógica de gestión fuertemente tipada.

config.OnSessionError = (session, sessionException) =>
{
switch (sessionException.ErrorCode)
{
// See https://www.mongodb.com/es/docs/realm-sdks/dotnet/latest/reference/Realms.Sync.Exceptions.ErrorCode.html
// for a list of all error codes
case ErrorCode.BadQuery:
break;
}
};

Nota

Información adicional sobre excepciones

Por razones de seguridad, los Servicios de Aplicaciones pueden enviar solo una cantidad mínima de información sobre una excepción, pero los registros del servidor contendrán más detalles. En estos casos, el HelpLink La propiedad de la excepción contiene un enlace a la entrada de registro asociada.

Tip

Para obtener una lista de errores comunes de sincronización de dispositivos y cómo solucionarlos, consulte Errores de sincronización en la documentación de sincronización de dispositivos de App Services.

Para controlar qué mensajes registra el registrador del cliente, utilice LogLevel:

Logger.LogLevel = LogLevel.Debug;

Tip

Para diagnosticar y solucionar errores mientras desarrolla su aplicación, configure el nivel de registro en debug o trace. Para implementaciones de producción, reduzca el nivel de registro para mejorar el rendimiento.

Para configurar una función de registrador personalizada, configure Logger.Default en una función de registrador personalizada.

using Realms.Logging;
Logger.LogLevel = LogLevel.All;
// customize the logging function:
Logger.Default = Logger.Function(message =>
{
// Do something with the message
});

Durante las sesiones de sincronización, los eventos pueden agotar el tiempo de espera sin generar una excepción. Puede establecer CancelAsyncOperationsOnNonFatalErrors en true para que estos eventos generen una excepción que pueda gestionar. El siguiente código muestra un ejemplo de cómo configurar la CancelAsyncOperationsOnNonFatalErrors propiedad y 3 los eventos que generarán una excepción si se agota el tiempo de espera:

var config = new FlexibleSyncConfiguration(app.CurrentUser!)
{
CancelAsyncOperationsOnNonFatalErrors = true,
};
// These operations will throw an exception
// on timeout or other transient sync session errors.
var realm = await Realm.GetInstanceAsync(config);
var session = realm.SyncSession;
await session.WaitForUploadAsync();
await session.WaitForDownloadAsync();

Volver

Administrar suscripciones de sincronización flexible

En esta página