проблема с сертификатом apns-csharp - PullRequest
3 голосов
/ 18 октября 2010

Я пытаюсь использовать библиотеку apns-csharp для отправки push-уведомлений из .NET, я создал сертификат на портале Apple Provision, загружаю его и конвертирую в формат p12, когда пытаюсь загрузить его с кодом:

private ActionResult SendAlertPushNotification(string appId, string notificationContent, bool useSandBox)
        {
            NotificationService notificationService = new NotificationService(useSandBox,ApplicationsRepository.GetAPNSCertificateForApplication(appId,useSandBox),"123",1);
            notificationService.ReconnectDelay = 2000;
            notificationService.Error += new NotificationService.OnError(service_Error);
            notificationService.NotificationTooLong += new NotificationService.OnNotificationTooLong(service_NotificationTooLong);

            notificationService.BadDeviceToken += new NotificationService.OnBadDeviceToken(service_BadDeviceToken);
            notificationService.NotificationFailed += new NotificationService.OnNotificationFailed(service_NotificationFailed);
            notificationService.NotificationSuccess += new NotificationService.OnNotificationSuccess(service_NotificationSuccess);
            notificationService.Connecting += new NotificationService.OnConnecting(service_Connecting);
            notificationService.Connected += new NotificationService.OnConnected(service_Connected);
            notificationService.Disconnected += new NotificationService.OnDisconnected(service_Disconnected);
            var devices = ApplicationsRepository.GetPushClientDevicesID(appId);
            foreach (var token in devices)
            {
                var notification = new Notification(token);
                notification.Payload.Alert.Body = notificationContent;
                notification.Payload.Sound = "default";
                notification.Payload.Badge = 1;
                //Queue the notification to be sent
                if (notificationService.QueueNotification(notification))
                    Debug.WriteLine("Notification Queued!");
                else
                    Debug.WriteLine("Notification Failed to be Queued!");
            }
            notificationService.Close();
            ViewData["app"] = ApplicationsRepository.GetApplicationByAppId(appId);
            ViewData["count"] = devices.Count;
            return View("SendSuccess");
        }

Я получаю внутреннюю ошибку при попытке загрузить сертификат. Если я использую оригинальный сертификат в формате .cer, я не получаю никаких исключений, но на самом деле ничего не отправляется на серверы APNS. Кто-нибудь сталкивался с этой проблемой?

1 Ответ

2 голосов
/ 28 декабря 2010

Убедитесь, что вы экспортировали правильный сертификат. Недавно я столкнулся с подобной проблемой, но обнаружил, что экспортировал не ту.

OSX Брелок После того, как вы создали соответствующее Push-уведомление Сертификат в iPhone Developer Портал программы вы должны иметь скачал файл с именем что-то вроде apn_developer_identity.cer. если ты еще не сделали, вы должны открыть / импортировать этот файл в связку ключей, в ваш логин.

Наконец, если вы отфильтруете брелок для показать свой логин контейнера Сертификаты, вы должны увидеть ваши Сертификат в списке. Разверните Сертификат, и там должен быть ключ внизу / прикреплен к нему.

Правый клик или Ctrl + клик на соответствующий сертификат и выберите Экспорт. Брелок попросит вас выберите пароль для экспорта. Выбирать один и запомни это. Вы должны в конечном итоге с файлом .p12. Вам нужно это файл и пароль вы выбрали использовать уведомления и отзывы Библиотеки здесь.

Источник Как создать сертификат PKCS12

К настоящему времени я уверен, что вы решили это так или иначе, но, пройдя через это мое «я», я подумал, что было бы неплохо оставить свой опыт.

...