Я выполняю длинное задание в фоновом режиме, это может занять несколько минут или часов, и я запускаю это задание периодически ..., каждые 30 минут с повторяющимся заданием:
NSTimer.CreateRepeatingScheduledTimer(SyncIntervalSeconds, (obj) =>
{
DataOfNextSync = DataOfNextSync.AddSeconds(SyncIntervalSeconds);
System.Threading.Tasks.Task.Run(() =>
{
syncService.FullDataSync();
});
});
внутри "fullsync" я использую HttpClient и SQLite базу данных, получая некоторую информацию с сервера и помещая ее в мою базу данных и сохраняя некоторые файлы на диске
Обычно все работает нормально, но в некоторых случаях я не знаю, почему (часто, когда Mac спит, не всегда), задача останавливается со следующим сообщением об ошибке:
System.AggregateException: произошла одна или несколько ошибок. ---> System.Net.Http.HttpRequestException: при отправке запроса произошла ошибка ---> System.Net.WebException: Ошибка: NameResolutionFailure
в System.Net.WebConnection + d__16.MoveNext () [0x0002c] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/System/System.Net/WebConnection .cs: 137
--- Конец стека трассировки от предыдущего местоположения, где было сгенерировано исключение ---
в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача System.Threading.Tasks.Task) [0x00037] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Macm/ /referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:187
в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача System.Threading.Tasks.Task) [0x00028] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/msin.SMacMacMac /referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:156
в System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (задача System.Threading.Tasks.Task) [0x00008] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Macmcs /referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:128
в System.Runtime.CompilerServices.ConfiguredTaskAwaitable + ConfiguredTaskAwaiter.GetResult () [0x00000] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/referencesslass /runtime/compilerservices/TaskAwaiter.cs:447
в System.Net.WebConnection + d__19.MoveNext () [0x000cc] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/System/System.Net/WebConnection .cs: 259
--- Конец стека трассировки от предыдущего местоположения, где было сгенерировано исключение ---
в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача System.Threading.Tasks.Task) [0x00037] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Macm/ /referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:187
в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача System.Threading.Tasks.Task) [0x00028] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/msin.SMacMacMac /referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:156
в System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (задача System.Threading.Tasks.Task) [0x00008] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Macmcs /referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:128
в System.Runtime.CompilerServices.ConfiguredTaskAwaitable 1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:535
at System.Net.WebOperation+<Run>d__57.MoveNext () [0x00052] in /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/System/System.Net/WebOperation.cs:268
--- End of stack trace from previous location where exception was thrown ---
at System.Net.WebCompletionSource
1 + d__15 [T] .MoveNext () [0x0008e] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Macmcs класс / System / System.Net / WebCompletionSource.cs: 111
--- Конец стека трассировки от предыдущего местоположения, где было сгенерировано исключение ---
at System.Net.HttpWebRequest + d__241 1[T].MoveNext () [0x000b5] in /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/System/System.Net/HttpWebRequest.cs:952
--- End of stack trace from previous location where exception was thrown ---
at System.Net.HttpWebRequest.EndGetResponse (System.IAsyncResult asyncResult) [0x00018] in /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/System/System.Net/HttpWebRequest.cs:1180
at System.Threading.Tasks.TaskFactory
1 [TResult] .FromAsyncCoreLogic (System.IAsyncResult iar, System.Func 2[T,TResult] endFunction, System.Action
1 [T] endAction, System.Threading.Tasks.Task 1[TResult] promise, System.Boolean requiresSynchronization) [0x0000f] in /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/referencesource/mscorlib/system/threading/Tasks/FutureFactory.cs:550
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x00037] in /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:187
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:156
at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:128
at System.Runtime.CompilerServices.ConfiguredTaskAwaitable
1 + ConfiguredTaskAwaiter [ ] .GetResult () [0x00000] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs: 535в System.Net.Http.HttpClientHandler + d__64.MoveNext () [0x003d3] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/System.Net.Htp /System.Net.Http/HttpClientHandler.cs:402
--- Конец внутренней трассировки стека исключений ---
в System.Net.Http.HttpClientHandler + d__64.MoveNext () [0x0046c] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/System.Net.Http /System.Net.Http/HttpClientHandler.cs:406
--- Конец стека трассировки от предыдущего местоположения, где было сгенерировано исключение ---
в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача System.Threading.Tasks.Task) [0x00037] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Macm/ /referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:187
в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача System.Threading.Tasks.Task) [0x00028] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/msin.SMacMacMac /referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:156
в System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (задача System.Threading.Tasks.Task) [0x00008] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Macmcs /referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:128
в System.Runtime.CompilerServices.ConfiguredTaskAwaitable 1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:535
at System.Net.Http.HttpClient+<SendAsyncWorker>d__46.MoveNext () [0x00080] in /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/System.Net.Http/System.Net.Http/HttpClient.cs:276
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task.ThrowIfExceptional (System.Boolean includeTaskCanceledExceptions) [0x00013] in /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/referencesource/mscorlib/system/threading/Tasks/Task.cs:2166
at System.Threading.Tasks.Task
1 [TResult] .GetResultCore (System.Boolean waitCompletionNotification) [0x0002b] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0aca//ss MCS / класс / referencesource / mscorlib / система / пронизывающие / Задачи / Future.cs: 562
в System.Threading.Tasks.Task 1[TResult].get_Result () [0x00000] in /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/referencesource/mscorlib/system/threading/Tasks/Future.cs:532
at Aptos.Core.APIProvider.Get (System.String url, System.Collections.Generic.Dictionary
2 [TKey, TValue] заголовки) [0x00080] в <2162774b92f2416e98dc5d9fc831c8f3>: 0
в Aptos.Core.SynchronizationService.DownloadImage (SQLite.SQLiteConnection conn, System.Collections.Generic.Dictionary 2[TKey,TValue] headers, Aptos.Core.PatientImage newimage, System.String oldRelPath, System.Boolean isImport) [0x00097] in <2162774b92f2416e98dc5d9fc831c8f3>:0
at Aptos.Core.SynchronizationService.GetAllChanges (System.Collections.Generic.Dictionary
2 [TKey, TValue] заголовки) [0x008ba] в <2162774b92f2416e98dc5d9fc831c8f3: 0
---> (Внутреннее исключение № 0) System.Net.Http.HttpRequestException: при отправке запроса произошла ошибка ---> System.Net.WebException: Ошибка: NameResolutionFailure
в System.Net.WebConnection + d__16.MoveNext () [0x0002c] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/System/System.Net/WebConnection .cs: 137
--- Конец стека трассировки от предыдущего местоположения, где было сгенерировано исключение ---
в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача System.Threading.Tasks.Task) [0x00037] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Macm/ /referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:187
в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача System.Threading.Tasks.Task) [0x00028] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/msin.SMacMacMac /referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:156
в System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (задача System.Threading.Tasks.Task) [0x00008] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Macmcs /referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:128
в System.Runtime.CompilerServices.ConfiguredTaskAwaitable + ConfiguredTaskAwaiter.GetResult () [0x00000] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/referencesslass /runtime/compilerservices/TaskAwaiter.cs:447
в System.Net.WebConnection + d__19.MoveNext () [0x000cc] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/System/System.Net/WebConnection .cs: 259
--- Конец стека трассировки от предыдущего местоположения, где было сгенерировано исключение ---в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача System.Threading.Tasks.Task) [0x00037] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Macm/ /referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:187
в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача System.Threading.Tasks.Task) [0x00028] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/msin.SMacMacMac /referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:156
в System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (задача System.Threading.Tasks.Task) [0x00008] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Macmcs /referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:128
в System.Runtime.CompilerServices.ConfiguredTaskAwaitable 1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:535
at System.Net.WebOperation+<Run>d__57.MoveNext () [0x00052] in /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/System/System.Net/WebOperation.cs:268
--- End of stack trace from previous location where exception was thrown ---
at System.Net.WebCompletionSource
1 + d__15 [T] .MoveNext () [0x0008e] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Macmcs класс / System / System.Net / WebCompletionSource.cs: 111
--- Конец стека трассировки от предыдущего местоположения, где было сгенерировано исключение ---
at System.Net.HttpWebRequest + d__241 1[T].MoveNext () [0x000b5] in /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/System/System.Net/HttpWebRequest.cs:952
--- End of stack trace from previous location where exception was thrown ---
at System.Net.HttpWebRequest.EndGetResponse (System.IAsyncResult asyncResult) [0x00018] in /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/System/System.Net/HttpWebRequest.cs:1180
at System.Threading.Tasks.TaskFactory
1 [TResult] .FromAsyncCoreLogic (System.IAsyncResult iar, System.Func 2[T,TResult] endFunction, System.Action
1 [T] endAction, System.Threading.Tasks.Task 1[TResult] promise, System.Boolean requiresSynchronization) [0x0000f] in /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/referencesource/mscorlib/system/threading/Tasks/FutureFactory.cs:550
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x00037] in /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:187
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:156
at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:128
at System.Runtime.CompilerServices.ConfiguredTaskAwaitable
1 + ConfiguredTaskAwaiter [ ] .GetResult () [0x00000] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs: 535
в System.Net.Http.HttpClientHandler + d__64.MoveNext () [0x003d3] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/System.Net.Htp /System.Net.Http/HttpClientHandler.cs:402
--- Конец внутренней трассировки стека исключений ---
в System.Net.Http.HttpClientHandler + d__64.MoveNext () [0x0046c] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/System.Net.Http /System.Net.Http/HttpClientHandler.cs:406
--- Конец стека трассировки от предыдущего местоположения, где было сгенерировано исключение ---
в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача System.Threading.Tasks.Task) [0x00037] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Macm/ /referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:187
в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача System.Threading.Tasks.Task) [0x00028] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/msin.SMacMacMac /referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:156
в System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (задача System.Threading.Tasks.Task) [0x00008] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Macmcs /referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:128
в System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1 + ConfiguredTaskAwaiter [TResult] .GetResult () [0x00000] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/lassMacM.Mac referencesource / mscorlib / система / время выполнения / compilerservices / TaskAwaiter.cs: 535
в System.Net.Http.HttpClient + d__46.MoveNext () [0x00080] в /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/mcs/class/System.Net.Http /System.Net.Http/HttpClient.cs:276 <--- </p>