3

У меня есть приложение Silverlight от Wp8.1, которое получает push-уведомление (WNS) от Mobileservice (старая лазурная услуга).NotificationHub Push Notification возвращает: Токен, полученный от провайдера Token, неверен

Поэтому я хотел обновить новую услугу из-за новых функций. Теперь я создал/обновил новый сервер для использования App Service - Mobile App. И проверено push-уведомление с образцом приложения от лазурного (все работает).

Возвращаясь к моему приложению WP8.1 -> Добавив новый пакет через NuGet (2.0.1), есть проблема, что Microsoft.WindowsAzure.Mobile.Ext не содержит расширение GetPush. Похоже, что этого не хватает? глядя на версию WP8, он регистрируется только в MPNS, и мне нужен WNS. Поэтому я не знаю, можно ли использовать другую сборку.

Могу ли я добавить еще ссылку на сборку?

Update

Следующий код позволяет мне зарегистрировать устройство на сервере, и я могу видеть регистр устройства правильно. где 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); 

Отправка тестового тамаду уведомление зарегистрированных тегов, приводит к следующей ошибке:

Токен, полученный от поставщика маркеров неправильно

Поиск по этому вопросу я найдено Windows Store App Push Notifications via Azure Service Bus. Что предлагаемое решение говорит, чтобы зарегистрироваться в центре уведомлений непосредственно из приложения, я бы предпочел, чтобы приложение не имело прямого доступа к концентратору. Но разве это единственный способ? (Заметьте ответ не был принят, но я постараюсь это все, хотя это не является искомым решением)

Update

Регистрация уведомлений через клиент (WP8.1 Silverligt), делает регистрацию MPNS, которого я не хочу.

Сниппет на сервере регистрирует WNS, две регистрации можно посмотреть здесь:

Example of the registrations

извлечения URI осуществляется с помощью

var channel = await Windows.Networking.PushNotifications.PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync(); 

, который в описании говорится, что возвращает WNS. Это, по-видимому, означает, что регистрация, которую я выполняю на сервере (фрагмент кода в верхней части), является правильным и регистрация на клиенте является неисправной.

Но регистрация на изображении кажется неправильной. Разве не должно быть PNS Identifier для двух регистраций? тоже expiration date выглядит неправильно?

Как исправить это, так как GetPush() (который был доступен в образце, зарегистрированном клиентом правильно для уведомлений), не существует в пакете NuGet?

Update

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

Временное решение:

Deltede, воссозданный, вставленный пакет SID и Secret. И это снова работает (странно)!

По-прежнему интересуется основной проблемой!

+0

Сейчас немного сложно понять, но мое подозрение в том, что секрет был неправильным. Идентификатор PNS привязан к регистрации устройства + приложения, а не к пользователю, поэтому имеет смысл то же самое. –

+0

@JTIM вы решили проблему? –

+0

@AlexBelotserkovskiy Я могу отправлять уведомления да, но нет, я не знаю, в чем проблема. Удалили и воссоздали сервис, и это помогло? – JTIM

ответ

0

Удаленный и воссозданный сервис, установка всех одинаковых настроек заставляет его работать снова.