2009-08-10 4 views
0

Je tente de pousser des notifications sur mon iPhone, que j'ai réussi à utiliser PHP. Cependant, je ne parviens pas à ouvrir une connexion socket vers les serveurs Push d'Apple en utilisant C#. Je ne pense pas qu'il y ait un problème avec le certificat lui-même, puisque je suis en mesure de pousser avec succès les notifications en utilisant ce code en PHP:Impossible de pousser les notifications vers l'iPhone .NET - Problème de certificat .PEM?

$ctx = stream_context_create(); 

stream_context_set_option($ctx, 'ssl', 'local_cert', 'cert.pem'); 

$fp = stream_socket_client('ssl://gateway.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx); 

fwrite($fp, $msg); 

Lorsque je tente d'authentifier en C# en utilisant le code ci-dessous, Apple ferme la connexion tout de suite. Je reçois cette exception: "Impossible de lire les données de la connexion de transport: une connexion existante a été fermée de force par l'hôte distant."

sslStream.AuthenticateAsClient(hostname, certificatesCollection, SslProtocols.Default, false); 

Je essentiellement pris tout mon code de cette question: C# iPhone push server?

je pensais que ce serait peut-être un problème avec le certificat que je ne pense pas que C# vous permet de charger simplement des fichiers .PEM programme. J'ai utilisé OpenSSL pour le convertir en un fichier .PFX, mais j'ai toujours le même problème.

Une idée de comment je peux résoudre ce problème (certificat possible)?

Répondre

0

Cela s'est avéré être un problème avec .NET 2.0. Je ne sais pas exactement ce que c'est, mais j'ai compilé dans Visual Studio 2008 et tout a bien fonctionné.

Questions connexes