我有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。所以我不知道是否可以使用任何其他组件。
我可以添加其他程序集引用吗?
更新
以下代码让我在服务器上注册设备,我可以看到设备正确注册。其中channelUri
和installationInformation
由客户端检索并发送到服务器。
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,这里可以看到两个注册:
使用
完成URI检索var channel = await Windows.Networking.PushNotifications.PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
在描述中声明它返回一个WNS。这似乎推断我在服务器上进行的注册(顶部的代码片段)是正确的,并且客户端上的注册有问题。
但是图像上的注册似乎是错误的。这两个注册的PNS Identifier
不应该不同吗? expiration date
似乎也错了?
如何修复此问题,因为NuGet包中不存在GetPush()
(在为通知正确注册客户端的示例中可用)?
更新
我读了一个地方,删除并重新创建NotificationHub
可能有所帮助。我今天会试试这个。即使它有效,也更需要有解决方案,并知道注册是否正确完成?
临时解决方案:
Deltede,重新创建,插入包SID和秘密。它再次起作用(奇怪)!
仍对底层问题感兴趣!
答案 0 :(得分:1)
删除并重新创建该服务,设置所有相同的设置使其再次起作用。
答案 1 :(得分:1)
我的 UWP 有同样的问题。但就我而言,我遇到了自签名证书的问题。
当我将 AppxPackageSigningEnabled
属性设置为 True
(在 .csproj
中)时,通知停止工作并且我收到“从令牌提供程序获得的令牌是错误的”(测试从 Azure 发送传送门)。
证书必须与 Publisher
文件中的 Identity
元素中的 .appxmanifest
具有相同的颁发者。