PushSharp Apple - Le message reçu était inattendu ou mal formaté

Je suis l'aide de la version 2.1.2 de PushSharp. L'application est .NET 4.5.1 (bien que j'ai aussi essayé de ciblage .NET 4.5 et .NET 4)

Je suis en train, mais ne réussissant pas à envoyer des messages push par le bac à sable Apple IPA.

Je suis avec succès l'envoi de messages à l'aide d'un script PHP fourni ici, sur Ray Wenderlich de procédure pas à pas en utilisant le même certificat et l'envoi vers le même ID de périphérique comme pour mon PushSharp app.

J'ai testé en les exportant le formulaire de cert p12 de la chaîne de la clé. L'exportation le formulaire de certificat. L'exportation de la clé privée. Également par la méthode utilisée ici. Quand je combine les cert et une clé pour une utilisation dans le script PHP, je n'ai pas de problèmes.

J'ai importé le certificat p12 sur les machines que j'ai testé à partir de la, ne semble pas faire de différence.

J'ai essayé de changer le IsProduction drapeau lors de l'enregistrement du push d'apple service à la simple pression d'un courtier. Il n'y a pas d'erreur lorsqu'il est défini comme la production (même si c'est un bac à sable cert), mais on ne veut pas obtenir par le biais de l'appareil dans ce cas non plus.

Aucun de mes messages, tous les accéder à un service d'exception qui se présente comme suit:

System.Security.Authentication.AuthenticationException: A call to SSPI failed, see inner exception. ---> System.ComponentModel.Win32Exception: The message received was unexpected or badly formatted
 --- End of inner exception stack trace ---
at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
at PushSharp.Apple.FeedbackService.Run(ApplePushChannelSettings settings, CancellationToken cancelToken)
at PushSharp.Apple.ApplePushService.<>c__DisplayClass4.<.ctor>b__1(Object state)

C'est essentiellement ce que mon code ressemble à ceci:

var push = new PushBroker();
//register event handlers for channel create/destroy/exception, notificationrequeue, serviceexception, notification sent

var appleCert = File.ReadAllBytes(ConfigurationManager.AppSettings["CertAddress"]);
push.RegisterAppleService(new ApplePushChannelSettings(false, appleCert, ConfigurationManager.AppSettings["CertPassword"]));

var pn = new AppleNotification().ForDeviceToken(item.SendToDeviceIdentifier).WithAlert(item.AlertMessage).WithBadge(item.Badges);

push.QueueNotification(pn);

Je reçois le canal jusqu'à l'événement appelé, et le service d'exception.

Certaines des questions liées à mentionner que cette erreur peut être liée à un problème de firewall - j'ai testé de mon application dans 2 réseaux différents qui sont en mesure d'envoyer des notifications push (dont 1 à l'aide d'un PushSharp application actuellement).

Aucune information serait très apprécié.

Je viens de poster une réponse, j'espère que ça peut aider. stackoverflow.com/questions/23116726/...

OriginalL'auteur bean | 2014-04-16