2015-09-06 136 views
0

我已經啓用了推送通知服務的應用程序,直到現在沒有問題。但昨天我犯了一個錯誤,取消了證書,通知不起作用。 然後我創建了一個新的apns推送生產證書(.p12文件),然後放入我的服務器。但現在我已經出現以下錯誤:錯誤連接APNS服務器

System.IO.IOException : Authentication failed because the remote side closed the transport stream .

閱讀論壇中我注意到,SSL3安全性不支持,然後我試圖更改爲TLS。但是,當我嘗試這個我有這個錯誤:

the remote side closed the transport stream

我試圖用私鑰生成.p12文件與2048位RSA沒有結果。

這個mi服務器代碼。我正在使用MoonApns。

certificate = If(String.IsNullOrEmpty(p12FilePassword), New X509Certificate2(File.ReadAllBytes(P12File)), New X509Certificate2(File.ReadAllBytes(P12File), p12FilePassword, X509KeyStorageFlags.MachineKeySet)) 
    _certificates = New X509Certificate2Collection() 
    _certificates.Add(_certificate) 

    Dim _apnsClient As TcpClientapnsClient = New TcpClient() 
    _apnsClient.Connect(ProductionHost, NotificationPort) 

    Dim _apnsStream As SslStream = New SslStream(_apnsClient.GetStream(), False, AddressOf validateServerCertificate, AddressOf SelectLocalCertificate) 

    Try 

     _apnsStream.AuthenticateAsClient(ProductionHost, _certificates, System.Security.Authentication.SslProtocols.Tls, False) 

Catch ex As System.Security.Authentication.AuthenticationException 
      Throw ex 
     End Try 

感謝您的幫助。

Regards

回答

0

我找到了我自己的解決方案!

如果您使用帶有.p12證書的Moon APNS並且您需要使用tls安全性,則必須在您的apns服務器中安裝apns_production.cer。如果你沒有這個,你的系統中可能會有套接字異常。

謝謝