无法在.NET中将通知推送到iPhone - .PEM证书问题?

时间:2009-08-10 15:16:07

标签: c# iphone push-notification

我正在尝试将通知推送到我的iPhone,我已经使用PHP成功完成了。但是,我无法使用C#打开与Apple推送服务器的套接字连接。我不认为证书本身存在问题,因为我能够在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);

当我尝试使用下面的代码在C#中进行身份验证时,Apple会立即关闭连接。我得到这个例外:“无法从传输连接读取数据:远程主机强行关闭现有连接。”

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

我基本上从这个问题中获取了所有代码:C# iPhone push server?

我认为这可能是证书的问题,因为我不认为C#允许您以编程方式加载.PEM文件。我使用OpenSSL将其转换为.PFX文件,但我仍然遇到同样的问题。

我知道如何解决这个(可能的证书)问题吗?

1 个答案:

答案 0 :(得分:0)

这实际上是.NET 2.0的一个问题。不确定它究竟是什么,但我在Visual Studio 2008中编译,一切都很好。