Apple Push-уведомления из приложения WebApi

Я использую PushSharp для push-уведомлений Apple, и он работает из консольного приложения и службы Windows в Windows 8 и Windows. Server 2008R2, но тот же код, перенесенный в приложение WebApi на тех же компьютерах, не работает. Я установил сертификат и закрытый ключ через mmc в Личном (закрытый ключ доступен, предоставлено разрешение для IIS_USRS) и доверенных корневых центрах сертификации. Код очевиден, но на всякий случай:

var push = PushBroker();
var appleCert = File.ReadAllBytes("C:\Users\Documents\Certificates\Push.p12");
push.RegisterAppleService(new PushSharp.Apple.ApplePushChannelSettings(false, appleCert, "pwd"));
PushSharp.Apple.AppleNotification notif = new PushSharp.Apple.AppleNotification()
    .ForDeviceToken("xxx")
    .WithAlert("Updated...")
    .WithBadge(1)
    .WithSound("default");
push.QueueNotification(notif);
//Wait for queue to finish
push.StopAllServices(true);

Никаких ошибок/исключений и т. д., просто устройство iPhone не получает уведомления при запуске в приложении WebApi.


person Duke Ace    schedule 17.10.2014    source источник


Ответы (2)


Вы проверили все обработчики событий на наличие ошибок? Их много на экземпляре PushBroker, где вы можете подписаться на перехват ошибки (если она есть).

Подпишитесь на: OnServiceException и OnNotificationFailed.

Проверьте, есть ли у ролей IIS|приложение|пользователи|роли все привилегии для доступа в Интернет.

person Vedran Mandić    schedule 19.11.2014
comment
Похоже, [stackoverflow.com/questions/23115394/ содержит ответ. После обновления PushSharp до 2.2.1 проблема решилась. - person Duke Ace; 20.11.2014
comment
Отличные, хорошие новости! Через несколько дней я опубликую репозиторий git с полной демонстрационной реализацией PushSharp на сервере и клиентах, я опубликую его здесь, чтобы вы могли проверить его позже. - person Vedran Mandić; 21.11.2014

Когда у меня была эта ошибка, это была проблема с сертификатом. Убедитесь, что вы используете правильный сертификат для производства, так как первый параметр в ApplePushChannelSettings имеет значение false, иначе сообщение не будет доставлено. Также просмотрите код и посмотрите, генерируются ли какие-либо ошибки, но не регистрируются.

person Tony G.    schedule 04.11.2014