2016-06-30 50 views
5

Używam PushSharp 4.0.10, MVC 4 z C#
W OnNotificationFailed przypadku brokera APN, otrzymuję wyjątek ConnectionError.
Ten wyjątek zdarzył się nagle po pliku z certyfikatem zmiany (.p12); i to działało dobrze przed tą zmianą.
Proszę wyjaśnić, jak rozwiązać ten problem.błąd powiadomienie PushSharp APN: 'ConnectionError'

var certificate = System.IO.File.ReadAllBytes(System.Web.Hosting.HostingEnvironment.MapPath("~/Content/Mobile/consumer_dev.p12")); 

var config = new ApnsConfiguration(ApnsConfiguration.ApnsServerEnvironment.Sandbox, certificate, "", true); 

var apnsBroker = new ApnsServiceBroker(config); 

apnsBroker.OnNotificationFailed += (notification, aggregateEx) => { 
    aggregateEx.Handle (ex => { 
     if (ex is ApnsNotificationException) { 
      var notificationException = (ApnsNotificationException)ex; 
      var apnsNotification = notificationException.Notification; 
      var statusCode = notificationException.ErrorStatusCode; 

      Debug.WriteLine(apnsNotification.Identifier + ", " + statusCode); 
     } else { 
      Debug.WriteLine(ex.InnerException); 
     } 
     return true; 
    }); 
}; 

apnsBroker.OnNotificationSucceeded += (notification) => { 
    Debug.WriteLine("Apple Notification Sent!"); 
}; 

apnsBroker.Start(); 

foreach (var deviceToken in to) 
{ 
    apnsBroker.QueueNotification(new ApnsNotification 
    { 
     DeviceToken = deviceToken, 
     Payload = JObject.Parse("{\"aps\":" + aps.ToString().Replace('=', ':') + "}") 
    }); 
} 

apnsBroker.Stop(); 

Odpowiedz

0

Spróbuj przepuszczając tylko pierwsze dwa parametry apnsconfiguration konstruktora albo usunąć validateIsApnsCertificate (bool) parametru. Dla mnie działają trzy pierwsze parametry.

var config = new ApnsConfiguration(ApnsConfiguration.ApnsServerEnvironment.Production, appleCert, P12Password); 
+0

Mam ten sam problem i to nie zadziałało. – Angel

+0

Czy znalazłeś rozwiązanie? – user3151766

1

ten błąd jest spowodowany tym, że używany certyfikat nie został włączony przy użyciu powiadomienia push.

należy włączyć to z identyfikatora Apple, a następnie utworzyć nowy certyfikat (.12) i profil informacyjny.

spróbuj z tym nowym certyfikatem rozwiąże twój błąd.