Не приходят уведомления при использовании концентратора уведомлений служебной шины

Выполнил процедуру «Начало работы с концентраторами уведомлений» построчно и убедился, что все сделал правильно. Из того, что я вижу. Но я не получаю уведомления в приложении Магазина Windows.

Код работает, ошибок нет. Я вижу, что регистрация появляется на приборной панели NH, поскольку диаграммы показывают операцию.

Но ничего не происходит.

Как устранить эту неполадку?

        //register yourself with WNS and tell it you are ready to receive Push Notifications
        var channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();

        //connect to service bus
        var cn = ConnectionString.CreateUsingSharedAccessKey(new Uri("sb://<namespace>.servicebus.windows.net"),
            "<sharedaccesskeyname>", "<sharedaccesskey>");

        //connect to Notification Hub
        NotificationHub hub = new NotificationHub("<hub name>", cn);

        //Send the channel.Uri from WNS to Notification Hubs
        await hub.RegisterNativeAsync(channel.Uri);

а затем внутренний код представляет собой простое консольное приложение, которое делает это;

        var client = NotificationHubClient.CreateClientFromConnectionString(
            "Endpoint=sb://<namespace>.servicebus.windows.net/;SharedAccessKeyName=<sharedkeyname>;SharedAccessKey=<sharedaccesskey>",
            "<hub name>");

        //send a message through NH
        await client.SendWindowsNativeNotificationAsync(String.Format("<toast><visual><binding template=\"ToastText01\"><text id=\"1\">{0}</text></binding></visual></toast>", 
            "Hello!"));

person ryancrawcour    schedule 23.09.2013    source источник


Ответы (1)


Отладка push-уведомлений может быть сложной задачей (мы работаем над улучшением отладки). На самом деле информации недостаточно, чтобы помочь вам, но я дам несколько советов, и не стесняйтесь обращаться ко мне, если вы все еще заблокированы. Я буду ссылаться на руководство по началу работы на сайте Windowsazure.com (http://www.windowsazure.com/en-us/manage/services/notification-hubs/getting-started-windows-dotnet/).

Некоторые указатели:

  1. Посмотрите на приборную панель:

    • incoming messages (if you do not have any, then you are either sending to the wrong hub, or you are not )
    • успешные уведомления (если вы видите их, значит, ваше клиентское приложение не может отображать всплывающее уведомление, либо проверьте xml, либо убедитесь, что в манифесте вы включили всплывающее уведомление, второй шаг раздела руководства «Отправка уведомлений из вашего бэкэнд»)
    • Ошибки аутентификации WNS (проверьте свой PackageSID и секрет клиента на вкладке «Настройка» вашего центра уведомлений)
    • Ошибки недопустимого канала (убедитесь, что вы связали код своего клиентского приложения с приложением Магазина Windows, шаг 4 раздела «Зарегистрируйте свое приложение в Магазине Windows» в руководстве)
  2. Попробуйте включить свойство EnableTestSend в NotificationHubClient (http://msdn.microsoft.com/en-us/library/microsoft.servicebus.notifications.notificationhubclient.enabletestsend.aspx). Это заставит ваш метод отправки вернуть список регистраций, на которые направлено ваше уведомление, и отдельные результаты. Если вы видите, что в вашем уведомлении нет целевых регистраций, значит, вы либо неправильно регистрируетесь, либо отправляете и/или регистрируетесь по несовпадающим тегам. Важно: не используйте тестовую отправку в рабочей среде, так как она будет транслироваться только на 5 устройств и сильно ограничена.

person Elio Damaggio    schedule 23.09.2013
comment
некоторые хорошие указатели здесь. Благодарю. единственный счетчик, который я вижу, это регистрация. никогда не видел, чтобы что-то тикало во входящих сообщениях. - person ryancrawcour; 24.09.2013
comment
Если это так, убедитесь, что: - person Elio Damaggio; 25.09.2013
comment
1) вы отправляете в правильный концентратор и 2) консольное приложение не закрывается до возврата асинхронных вызовов (убедитесь, что вы можете прочитать экземпляр SendResult с помощью отладчика или увидеть исключение) - person Elio Damaggio; 25.09.2013