No se pueden enviar notificaciones al iPhone en .NET: ¿problema con el certificado .PEM?

StackOverflow https://stackoverflow.com/questions/1255471

  •  12-09-2019
  •  | 
  •  

Pregunta

Estoy intentando enviar notificaciones a mi iPhone, lo cual lo hice exitosamente usando PHP.Sin embargo, no puedo abrir una conexión de socket a los servidores push de Apple usando C#.No creo que haya ningún problema con el certificado en sí, ya que puedo enviar notificaciones exitosamente usando este código en PHP:

$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);

Cuando intento autenticarme en C# usando el siguiente código, Apple cierra la conexión de inmediato.Recibo esta excepción:"No se pueden leer datos de la conexión de transporte:El host remoto cerró a la fuerza una conexión existente."

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

Básicamente tomé todo mi código de esta pregunta: ¿Servidor push de iPhone C#?

Pensé que podría ser un problema con el certificado ya que no creo que C# te permita simplemente cargar archivos .PEM mediante programación.Usé OpenSSL para convertirlo a un archivo .PFX, pero sigo teniendo el mismo problema.

¿Alguna idea de cómo puedo solucionar este problema (posible certificado)?

¿Fue útil?

Solución

En realidad, esto resultó ser un problema con .NET 2.0. No estoy seguro exactamente lo que es, pero compilado en Visual Studio 2008 y todo funcionó muy bien.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top