Incapaz de notificações push para iPhone em .NET - .PEM problema de certificado?
-
12-09-2019 - |
Pergunta
Eu estou tentando enviar notificações para o meu iPhone, que eu tenho feito com sucesso usando PHP. No entanto, eu sou incapaz de abrir uma conexão de soquete para servidores de envio da Apple usando C #. Eu não acho que há um problema com o próprio certificado, desde que eu sou capaz de empurrar com sucesso notificações usando esse código em 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);
Quando eu tentar autenticar em C # usando o código abaixo, a Apple fecha a conexão imediatamente. Eu recebo esta exceção: "Não é possível ler dados da conexão de transporte:. Uma conexão existente forçosamente foi fechada pelo host remoto"
sslStream.AuthenticateAsClient(hostname, certificatesCollection, SslProtocols.Default, false);
eu basicamente tomou todo o meu código de esta questão: servidor de envio href="https://stackoverflow.com/questions/1056083/c-iphone-push-server"> iPhone ? p>
Eu pensei que poderia ser um problema com o certificado desde que eu não acho que C # permite-lhe apenas carregar .PEM arquivos programaticamente. Eu usei OpenSSL para convertê-lo para um arquivo .pfx, mas ainda tenho o mesmo problema. Qualquer idéia de como posso resolver este problema (possível certificado)?
Solução
Este facto acabou por ser um problema com .NET 2.0. Não tenho certeza exatamente o que é, mas eu compilado no Visual Studio 2008 e tudo funcionou muito bem.