NotificationHub Push Notification returns : 从 Token Provider 获取的 Token 错误
NotificationHub Push Notification returns : The Token obtained from the Token Provider is wrong
我有 Wp8.1 Silverlight 应用程序,它从 Mobileservice(旧的 Azure 服务)接收推送通知 (WNS)。
因此,由于新功能,我想更新到新服务。我现在 created/upgraded 有一个新服务器可以使用 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,导致以下错误:
The Token obtained from the Token Provider is wrong
搜索这个问题我发现 Windows Store App Push Notifications via Azure Service Bus。建议的解决方案说直接从应用程序注册到通知中心,我宁愿不让应用程序直接访问中心。但这是唯一的方法吗? (请注意,答案未被接受,但我会尝试所有方法,尽管这不是理想的解决方案)
更新
通过客户端 (WP8.1 Silverligt) 注册通知,向 MPNS 注册,这是我不想要的。
服务器上的代码片段注册了一个WNS,两个注册可以看这里:
URI 检索是使用
完成的
var channel = await Windows.Networking.PushNotifications.PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
在描述中指出它 returns 是一个 WNS。这似乎推断我在服务器上进行的注册(顶部的代码片段)是正确的,而客户端上的注册是错误的。
但是图像上的注册似乎不正确。两次注册的 PNS Identifier
不应该不同吗? expiration date
似乎也有误?
如何修复此问题,因为 NuGet 包中不存在 GetPush()
(在示例中可以正确注册客户端以获取通知)?
更新
我读到一个地方,删除并重新创建 NotificationHub
可能会有所帮助。我今天会试试这个。即使它有效,也更希望有解决方案,并知道注册是否正确完成?
临时解决方案:
删除、重新创建、插入包 SID 和机密。它再次起作用(奇怪)!
仍然对潜在问题感兴趣!
删除并重新创建服务,设置所有相同的设置使其再次运行。
我的 UWP 也有同样的问题。但就我而言,我对自签名证书有疑问。
当我将 AppxPackageSigningEnabled
属性 设置为 True
(在 .csproj
中)时,通知停止工作并且我得到“从令牌提供者获得的令牌是错误的"(测试从 Azure 门户发送)。
证书的颁发者必须与 .appxmanifest
文件中 Identity
元素中的 Publisher
相同。
我有 Wp8.1 Silverlight 应用程序,它从 Mobileservice(旧的 Azure 服务)接收推送通知 (WNS)。
因此,由于新功能,我想更新到新服务。我现在 created/upgraded 有一个新服务器可以使用 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,导致以下错误:
The Token obtained from the Token Provider is wrong
搜索这个问题我发现 Windows Store App Push Notifications via Azure Service Bus。建议的解决方案说直接从应用程序注册到通知中心,我宁愿不让应用程序直接访问中心。但这是唯一的方法吗? (请注意,答案未被接受,但我会尝试所有方法,尽管这不是理想的解决方案)
更新
通过客户端 (WP8.1 Silverligt) 注册通知,向 MPNS 注册,这是我不想要的。
服务器上的代码片段注册了一个WNS,两个注册可以看这里:
URI 检索是使用
完成的var channel = await Windows.Networking.PushNotifications.PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
在描述中指出它 returns 是一个 WNS。这似乎推断我在服务器上进行的注册(顶部的代码片段)是正确的,而客户端上的注册是错误的。
但是图像上的注册似乎不正确。两次注册的 PNS Identifier
不应该不同吗? expiration date
似乎也有误?
如何修复此问题,因为 NuGet 包中不存在 GetPush()
(在示例中可以正确注册客户端以获取通知)?
更新
我读到一个地方,删除并重新创建 NotificationHub
可能会有所帮助。我今天会试试这个。即使它有效,也更希望有解决方案,并知道注册是否正确完成?
临时解决方案:
删除、重新创建、插入包 SID 和机密。它再次起作用(奇怪)!
仍然对潜在问题感兴趣!
删除并重新创建服务,设置所有相同的设置使其再次运行。
我的 UWP 也有同样的问题。但就我而言,我对自签名证书有疑问。
当我将 AppxPackageSigningEnabled
属性 设置为 True
(在 .csproj
中)时,通知停止工作并且我得到“从令牌提供者获得的令牌是错误的"(测试从 Azure 门户发送)。
证书的颁发者必须与 .appxmanifest
文件中 Identity
元素中的 Publisher
相同。