0

我正在开发一个接收 WNS 通知的 WP8.1 silverlight 应用程序。它在模拟器上运行良好,但在设备(lumia 640)上,它在以下 api 调用时崩溃:

var channel = await Windows.Networking.PushNotifications.PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();

我收到以下错误:

  • _exception {System.Exception:来自 HRESULT 的异常:System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)的 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)的 System.Runtime.CompilerServices.TaskAwaiter 的1.GetResult() at BC_Menu.App.<UploadChannel>d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter0x880403E8 1.GetResult () at BC_Menu.StartUp.FirstPage.d__4.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪---在 System.Runtime.CompilerServices.AsyncMethodBuilderCore.b__3(Object state)} System.Exception

如果我在另一台设备(lumia 920)上尝试,它工作正常。这些设备之间的直接区别是我在 Lumia 640 上有一个虚拟帐户并且没有 sim 卡,但我能够安装和更新程序。这应该意味着帐户已正确初始化。还有什么问题?

4

1 回答 1

0

您正在崩溃,因为 Windows.Networking.PushNotifications.PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync() 调用由于设备未连接到 WNS 而引发异常。确保您处理这种情况(例如,使用 try/catch) - 您的用户可能并不总是连接到互联网,这是获取频道所必需的。

至于为什么该设备没有连接到 WNS - 如果您没有SIM 卡,该设备应该通过 Wi-Fi 连接。如果您在企业中进行开发,请确保他们没有阻止出站连接(这会导致设备无法连接到 WNS)。如果您安装了 SIM 卡但没有数据,则存在一个已知错误,即设备仍会尝试通过蜂窝数据连接(当然会失败)。如果是这种情况,只需移除无数据 SIM 卡或禁用蜂窝网络。

于 2015-11-13T22:27:40.690 回答