NotificationHub推送通知返回:从令牌提供程序获取的令牌错误

时间:2016-05-03 18:07:27

标签: push-notification azure-web-sites azure-mobile-services azure-notificationhub

我有Wp8.1 Silverlight应用程序,它从Mobileservice(旧的天蓝色服务)接收推送通知(WNS)。

因此,由于新功能,我想更新到新服务。我现在已经创建/升级了一台新服务器以使用App Service - Mobile App。并使用azure中的示例应用程序测试推送通知(一切正常)。

回到我的应用WP8.1 - >通过NuGet(2.0.1)添加新包Microsoft.Azure.Mobile.Client,存在Microsoft.WindowsAzure.Mobile.Ext不包含'GetPush'扩展名的问题。好像它缺少它?期待WP8版本,它只注册到MPNS,我需要WNS。所以我不知道是否可以使用任何其他组件。

我可以添加其他程序集引用吗?

更新

以下代码让我在服务器上注册设备,我可以看到设备正确注册。其中channelUriinstallationInformation由客户端检索并发送到服务器。

Installation ins = new Installation();
ins.Platform = NotificationPlatform.Wns;
ins.PushChannel = uTagAndChan.ChannelUri;
ins.Tags = uTagAndChan.Tags;
ins.InstallationId = uTagAndChan.installationInformation;
await hubClient.CreateOrUpdateInstallationAsync(ins);

向已注册的标签发送测试Toast-notification,会导致以下错误:

  

从令牌提供程序获取的令牌是错误的

正在搜索此问题,我找到了Windows Store App Push Notifications via Azure Service Bus。建议的解决方案表示直接从应用程序注册到通知中心,我宁愿没有应用程序直接访问该中心。但这是唯一的方法吗? (请注意,答案未被接受,但我会尽力尝试,但这不是一个理想的解决方案)

更新

通过客户端注册通知(WP8.1 Silverligt),向MPNS注册,这是我不想要的。

服务器上的代码片段注册了一个WNS,这里可以看到两个注册:

Example of the registrations

使用

完成URI检索
var channel = await Windows.Networking.PushNotifications.PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();

在描述中声明它返回一个WNS。这似乎推断我在服务器上进行的注册(顶部的代码片段)是正确的,并且客户端上的注册有问题。

但是图像上的注册似乎是错误的。这两个注册的PNS Identifier不应该不同吗? expiration date似乎也错了?

如何修复此问题,因为NuGet包中不存在GetPush()(在为通知正确注册客户端的示例中可用)?

更新

我读了一个地方,删除并重新创建NotificationHub可能有所帮助。我今天会试试这个。即使它有效,也更需要有解决方案,并知道注册是否正确完成?

临时解决方案:

Deltede,重新创建,插入包SID和秘密。它再次起作用(奇怪)!

仍对底层问题感兴趣!

2 个答案:

答案 0 :(得分:1)

删除并重新创建该服务,设置所有相同的设置使其再次起作用。

答案 1 :(得分:1)

我的 UWP 有同样的问题。但就我而言,我遇到了自签名证书的问题。

当我将 AppxPackageSigningEnabled 属性设置为 True(在 .csproj 中)时,通知停止工作并且我收到“从令牌提供程序获得的令牌是错误的”(测试从 Azure 发送传送门)。

证书必须与 Publisher 文件中的 Identity 元素中的 .appxmanifest 具有相同的颁发者。