Docs Menu
Docs Home
/ /
데이터 동기화

동기화 오류 및 시간 초과 처리 - .NET SDK

Device Sync 는 SessionExceptions 를 통해 오류를 나타냅니다. 표준 예외 속성 외에도 오류 유형에 대한 정보가 포함된 ErrorCode 에 액세스 할 수 있으며 이를 통해 강력한 유형의 처리 로직을 가질 수 있습니다.

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

참고

추가 예외 정보

보안상의 이유로 App Services 예외에 대한 최소한의 정보만 보낼 수 있지만, 서버 측 로그에는 더 많은 세부 정보가 포함됩니다. 이러한 경우 예외의 헬프링크 속성 에는 관련 로그 항목에 대한 링크가 포함되어 있습니다.

일반적인 Device Sync 오류 목록과 이를 처리하는 Device Sync 방법은 Atlas App Services 문서에서 동기화 오류 를 참조하세요.

클라이언트 로거가 어떤 메시지를 기록할지 제어하려면 LogLevel을 사용하세요.

Logger.LogLevel = LogLevel.Debug;

애플리케이션을 개발하는 동안 발생하는 오류를 진단하고 문제를 해결하려면 로그 수준을 debug 또는 trace 로 설정합니다. 프로덕션 배포의 경우 성능을 향상시키려면 로그 수준을 낮추세요.

사용자 지정 로거 함수를 설정하려면 Logger.Default 를 사용자 지정 로거 함수로 설정합니다.

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

동기화 세션 중에 이벤트가 예외를 발생시키지 않고 시간 초과될 수 있습니다. CancelAsyncOperationsOnNonFatalErrorstrue 으로 설정하여 이러한 이벤트가 예외를 발생시킨 다음 처리할 수 있도록 할 수 있습니다. 다음 코드는 시간 초과 시 예외를 발생시키는 CancelAsyncOperationsOnNonFatalErrors 속성 및 3 이벤트를 설정하는 예를 보여줍니다.

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();

돌아가기

Flexible Sync 구독 관리

이 페이지의 내용