在 Windows 10 移动版上运行的 Windows Phone 8.1 应用程序的后台计时器任务中没有网络

Posted

技术标签:

【中文标题】在 Windows 10 移动版上运行的 Windows Phone 8.1 应用程序的后台计时器任务中没有网络【英文标题】:No networking in background timer task in Windows Phone 8.1 app running on Windows 10 Mobile 【发布时间】:2016-02-28 16:38:13 【问题描述】:

Windows phone 8.1 应用程序在 Windows 10 移动版上运行良好,除非它尝试在后台定时任务中进行 http 调用。后台任务使用通用代码,在应用程序处于活动状态时可以正常工作,因此代码可以正常工作,并且请求的 url 在应用程序处于活动状态时也可以正常工作。使用的http客户端是Windows.Web.Http.HttpClient

我怀疑 Windows 10 移动版可能需要缺少声明。

'backgroundTaskHost.exe' (CoreCLR: DefaultDomain): 已加载 'C:\windows\system32\mscorlib.ni.dll'。跳过加载符号。模块 已优化并启用了调试器选项“仅我的代码”。 'backgroundTaskHost.exe' (CoreCLR: .): 已加载 'C:\Data\Programs03B4FAD0-869C-11E4-A292-2935E87BC9D6\Install\Imatis.Mobilix.BackgroundTask.winmd'。已加载符号。 'backgroundTaskHost.exe' (CoreCLR: .): 已加载 'C:\windows\system32\SYSTEM.RUNTIME.NI.DLL'。跳过加载符号。 模块已优化,调试器选项“仅我的代码”已启用。 'backgroundTaskHost.exe' (CoreCLR: .): 已加载 'C:\windows\system32\WinMetadata\Windows.winmd'。跳过加载 符号。模块已优化,调试器选项“只是我的代码”是 启用。 'backgroundTaskHost.exe' (CoreCLR: .): 已加载 'C:\windows\system32\SYSTEM.THREADING.TASKS.NI.DLL'。跳过加载 符号。模块已优化,调试器选项“只是我的代码”是 启用。 'backgroundTaskHost.exe' (CoreCLR: .): 已加载 'C:\Data\Programs03B4FAD0-869C-11E4-A292-2935E87BC9D6\Install\Imatis.Mobilix.Library.DLL'。 已加载符号。 'backgroundTaskHost.exe' (CoreCLR: .): 已加载 'C:\windows\system32\SYSTEM.DIAGNOSTICS.DEBUG.NI.DLL'。跳过加载 符号。模块已优化,调试器选项“只是我的代码”是 启用。 'backgroundTaskHost.exe' (CoreCLR: .): 已加载 'C:\windows\system32\SYSTEM.NI.DLL'。跳过加载符号。模块 已优化并启用了调试器选项“仅我的代码”。 'backgroundTaskHost.exe' (CoreCLR: .): 已加载 'C:\windows\system32\SYSTEM.COLLECTIONS.NI.DLL'。跳过加载 符号。模块已优化,调试器选项“只是我的代码”是 启用。 'backgroundTaskHost.exe' (CoreCLR: .): 已加载 'C:\windows\system32\System.Runtime.WindowsRuntime.NI.DLL'。跳过 加载符号。模块经过优化,调试器选项“Just My” 代码'已启用。 'backgroundTaskHost.exe' (CoreCLR: .): 已加载 'C:\Data\Programs03B4FAD0-869C-11E4-A292-2935E87BC9D6\Install\Newtonsoft.Json.DLL'。 跳过加载符号。模块经过优化和调试器选项 “只是我的代码”已启用。 'backgroundTaskHost.exe' (CoreCLR: .): 已加载“C:\windows\system32\SYSTEM.RUNTIME.EXTENSIONS.NI.DLL”。跳过 加载符号。模块经过优化,调试器选项“Just My” 代码'已启用。 'backgroundTaskHost.exe' (CoreCLR: .): 已加载 'C:\windows\system32\SYSTEM.THREADING.NI.DLL'。跳过加载 符号。模块已优化,调试器选项“只是我的代码”是 启用。 'backgroundTaskHost.exe' (CoreCLR: .): 已加载 'C:\windows\system32\SYSTEM.RUNTIME.SERIALIZATION.PRIMITIVES.NI.DLL'。 跳过加载符号。模块经过优化和调试器选项 “只是我的代码”已启用。 'backgroundTaskHost.exe' (CoreCLR: .): 已加载“C:\windows\system32\SYSTEM.RUNTIME.SERIALIZATION.NI.DLL”。 跳过加载符号。模块经过优化和调试器选项 “只是我的代码”已启用。 'backgroundTaskHost.exe' (CoreCLR: .): 已加载“C:\windows\system32\SYSTEM.CORE.NI.DLL”。跳过加载 符号。模块已优化,调试器选项“只是我的代码”是 启用。 'backgroundTaskHost.exe' (CoreCLR: .): 匿名加载 托管 DynamicMethods 程序集'。

抛出异常:mscorlib.ni.dll WinRT 中的“System.Exception” 信息:无法解析服务器名称或地址

无法解析服务器名称或地址 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在 System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 在 Library.HttpHelper.d__2.MoveNext()

【问题讨论】:

【参考方案1】:

找到了解决办法。 Windows 10 移动版现在要求将 SystemCondition 添加到 BackgroundTaskBuilder

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

【讨论】:

谢谢,几周来一直在跟踪这个问题。投赞成票!

以上是关于在 Windows 10 移动版上运行的 Windows Phone 8.1 应用程序的后台计时器任务中没有网络的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 10 家庭版上安装 .appxbundle

wind10优化

WAMP 无法在 Windows 7 企业版上运行

在 Windows 10 专业版企业版或教育版上设置展台

尝试在 Windows Server 2008 Web 版上运行 DNN 是不是有任何陷阱?

sh 它可以在10行中完成,但结果并不是很好,因为它不会在许多发行版上运行