Я использую 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.