No networking in background timer task in Windows Phone 8.1 app running on Windows 10 Mobile

吃可爱长大的小学妹 提交于 2019-12-12 03:53:14

问题


A windows phone 8.1 app is running fine on windows 10 mobile except when it tries to do a http call in a background timed task. The background task is using common code which works fine when the app is active, so the code works, and the requested url also works fine when the app is active. The http client used is Windows.Web.Http.HttpClient.

I suspect there could be a missing declaration required for windows 10 mobile.

'backgroundTaskHost.exe' (CoreCLR: DefaultDomain): Loaded 'C:\windows\system32\mscorlib.ni.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'backgroundTaskHost.exe' (CoreCLR: .): Loaded 'C:\Data\Programs{03B4FAD0-869C-11E4-A292-2935E87BC9D6}\Install\Imatis.Mobilix.BackgroundTask.winmd'. Symbols loaded. 'backgroundTaskHost.exe' (CoreCLR: .): Loaded 'C:\windows\system32\SYSTEM.RUNTIME.NI.DLL'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'backgroundTaskHost.exe' (CoreCLR: .): Loaded 'C:\windows\system32\WinMetadata\Windows.winmd'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'backgroundTaskHost.exe' (CoreCLR: .): Loaded 'C:\windows\system32\SYSTEM.THREADING.TASKS.NI.DLL'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'backgroundTaskHost.exe' (CoreCLR: .): Loaded 'C:\Data\Programs{03B4FAD0-869C-11E4-A292-2935E87BC9D6}\Install\Imatis.Mobilix.Library.DLL'. Symbols loaded. 'backgroundTaskHost.exe' (CoreCLR: .): Loaded 'C:\windows\system32\SYSTEM.DIAGNOSTICS.DEBUG.NI.DLL'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'backgroundTaskHost.exe' (CoreCLR: .): Loaded 'C:\windows\system32\SYSTEM.NI.DLL'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'backgroundTaskHost.exe' (CoreCLR: .): Loaded 'C:\windows\system32\SYSTEM.COLLECTIONS.NI.DLL'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'backgroundTaskHost.exe' (CoreCLR: .): Loaded 'C:\windows\system32\System.Runtime.WindowsRuntime.NI.DLL'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'backgroundTaskHost.exe' (CoreCLR: .): Loaded 'C:\Data\Programs{03B4FAD0-869C-11E4-A292-2935E87BC9D6}\Install\Newtonsoft.Json.DLL'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'backgroundTaskHost.exe' (CoreCLR: .): Loaded 'C:\windows\system32\SYSTEM.RUNTIME.EXTENSIONS.NI.DLL'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'backgroundTaskHost.exe' (CoreCLR: .): Loaded 'C:\windows\system32\SYSTEM.THREADING.NI.DLL'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'backgroundTaskHost.exe' (CoreCLR: .): Loaded 'C:\windows\system32\SYSTEM.RUNTIME.SERIALIZATION.PRIMITIVES.NI.DLL'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'backgroundTaskHost.exe' (CoreCLR: .): Loaded 'C:\windows\system32\SYSTEM.RUNTIME.SERIALIZATION.NI.DLL'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'backgroundTaskHost.exe' (CoreCLR: .): Loaded 'C:\windows\system32\SYSTEM.CORE.NI.DLL'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'backgroundTaskHost.exe' (CoreCLR: .): Loaded 'Anonymously Hosted DynamicMethods Assembly'.

Exception thrown: 'System.Exception' in mscorlib.ni.dll WinRT information: The server name or address could not be resolved

The server name or address could not be resolved at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at Library.HttpHelper.d__2.MoveNext()


回答1:


Found the solution. Windows 10 Mobile now requires that a SystemCondition is added to the BackgroundTaskBuilder.

builder.AddCondition(new SystemCondition(SystemConditionType.InternetAvailable));


来源:https://stackoverflow.com/questions/35685218/no-networking-in-background-timer-task-in-windows-phone-8-1-app-running-on-windo

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!