Pushsharp 4.0.10 «Ошибка подключения» для токенов устройства IOS

Я разработал службу Windows для отправки push-уведомлений в приложения iOS и Android с помощью библиотеки pushsharp. Недавно я обновил библиотеку с 2.xx до 4.0.10, а уведомления GCM отправляются нормально, но уведомления Ios не отправляются, всегда получая «Ошибка подключения». Мне нужно отправлять уведомления тысячам токенов. Поэтому я просматриваю все токенов и очередей. Даже для 10 жетонов также возникает такая же ошибка. Пожалуйста, предложите мне, что случилось с моим кодом. Вот мой фрагмент кода

public static void SendNotifications(List currentBrandNotications, long brandId) { byte[] appleCert = null; string p12File = @"aps_production_brand" + brandId.ToString().Trim() + ".p12"; try { appleCert = File.ReadAllBytes(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "P12\\" + p12File)); } catch (Exception ex) { logger.Debug("P12 certificate is not avilable for BrandId: " + brandId); } try { logger.Debug(" Send PushNotifications To Apple :- "); if (appleCert != null) { // Configuration var config = new ApnsConfiguration(ApnsConfiguration.ApnsServerEnvironment.Production, appleCert, currentBrandNotications[0].P12Password); // Create a new broker var apnsBroker = new ApnsServiceBroker(config); var fbs = new FeedbackService(config); // Wire up events apnsBroker.OnNotificationFailed += (Notification, aggregateEx) => { //ScheduledNotification ScheduledNotification = new InstantPNScheduler.ScheduledNotification(); aggregateEx.Handle(ex => { // See what kind of exception it was to further diagnose if (ex is ApnsNotificationException) { var notificationException = (ApnsNotificationException)ex; // Deal with the failed notification var apnsNotification = notificationException.Notification; var statusCode = notificationException.ErrorStatusCode; logger.Debug("Apple Notification Failed: ID=" + apnsNotification.Identifier + " Code=" + statusCode); } else { // Inner exception might hold more useful information like an ApnsConnectionException logger.Debug(ex.InnerException.ToString()); } // Mark it as handled return true; }); }; apnsBroker.OnNotificationSucceeded += (Notification) => { logger.Debug("Apple Notification Sent!"); }; // Start the broker apnsBroker.Start(); foreach (ScheduledNotification notification in currentBrandNotications) { try { //logger.Debug("iOS Device token=" + notification.DeviceToken); apnsBroker.QueueNotification(new ApnsNotification { DeviceToken = notification.DeviceToken, Payload = JObject.Parse("{\"aps\":{\"alert\":\"" + notification.Message + "\",\"badge\":1,\"sound\":\"sound.caf\",\"BrandId\":\"" + brandId.ToString() + "\",\"notificationType\":\"Basic\",\"DeviceType\":\"" + notification.DeviceType + "\",\"DeviceToken\":\"" + notification.DeviceToken + "\",\"NotificationId\":\"" + notification.NotificationId + "\"}}") }); } Thread.Sleep(800); } catch (Exception ex) { logger.Debug(" SendPushNotificationToApple :- " + ex.Message); } } // Stop the broker, wait for it to finish // This isn't done after every message, but after you're // done with the broker apnsBroker.Stop(); } } catch (Exception ex) { logger.Debug("Error" + ex.Message); } finally { //apnsBroker = null; } } 

Примечание. Если я поставлю thread.sleep (800) в цикл for, тогда будут отправляться уведомления, но слишком поздно в случае тысяч токенов. Мне нужно это без thread.sleep (800), даже если я уменьшу ниже 800 мс, получая такое же исключение. Пожалуйста, помогите мне, что случилось с моим кодом. Любая помощь будет оценена по достоинству.

Interesting Posts
Давайте будем гением компьютера.