通过Azure Service Bus推送Windows应用商店推送通知

时间:2014-10-13 03:09:29

标签: windows push-notification windows-store-apps azure-notificationhub

我正在尝试向使用VS 2013 Express在笔记本电脑中开发的Windows应用商店应用发送推送通知。现在已经好几天但是我无法弄清楚为什么我得到“从令牌提供程序获得的令牌是错误的”错误。我为此目的使用Windows Azure Notification Bus。我使用VS Server Explorer发送测试通知。我可以看到我的笔记本电脑也在“设备注册”选项卡中注册为设备。我也尝试了Azure门户,但同样的错误。但是,当我尝试连接到提供连接字符串的Service Bus Explorer 2.4.3.0时,它会抛出以下错误。 < 21:47:14 - ;例外:远程服务器返回错误:(401)未经授权。此操作需要管理索赔.TrackingId:c0c4fea2-08bc-4def-964c-ec6e690b7551_G45,TimeStamp:10/12/2014 4:17:11 PM。方法b__7e:重试2的10。

仅供参考:我正在逐步完成下面的文章。 http://azure.microsoft.com/en-us/documentation/articles/notification-hubs-windows-store-dotnet-get-started/

请帮帮我。谢谢。 马赫什

1 个答案:

答案 0 :(得分:0)

看起来令牌刚刚过期。确保每次应用程序启动时都获得令牌。就你引用的文章而言,这意味着你应该调用方法InitNotificationsAsync()来做到这一点。这是方法:

private async void InitNotificationsAsync()
{
    var channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();

    var hub = new NotificationHub("<hub name>", "<connection string with listen access>");              
    var result = await hub.RegisterNativeAsync(channel.Uri);

    // Displays the registration ID so you know it was successful
    if (result.RegistrationId != null)
    {
        var dialog = new MessageDialog("Registration successful: " + result.RegistrationId);
        dialog.Commands.Add(new UICommand("OK"));
        await dialog.ShowAsync();
    }

}