PushSharp APNS-Produktion: Die im Paket enthaltenen Anmeldeinformationen wurden nicht erkannt (die Entwicklung funktioniert jedoch einwandfrei)
Meine App wurde gerade für den Verkauf im App Store vorbereitet, aber keines meiner Produktionsgeräte (Geräte, auf denen die App aus dem App Store installiert wurde) erhält Push-Benachrichtigungen. Wenn ich versuche, eine Push-Benachrichtigung an ein Produktionsgerät zu senden, wird folgende Fehlermeldung angezeigt:
"The credentials supplied to the package were not recognized"
(System.ComponentModel.Win32Exception)
Diese Ausnahme wird intern ausgelöst und in einer Endlosschleife abgefangen:
Es wird in Zeile 539 von geworfenApplePushChannel.cs
Datei:
try
{
stream.AuthenticateAsClient(this.appleSettings.Host, this.certificates,
System.Security.Authentication.SslProtocols.Ssl3, false);
//stream.AuthenticateAsClient(this.appleSettings.Host);
}
catch (System.Security.Authentication.AuthenticationException ex)
{
throw new ConnectionFailureException("SSL Stream Failed to Authenticate as Client", ex);
}
Dies ist die Ausgabe der Anwendung in Visual Studio Output:
...
A first chance exception of type 'System.ComponentModel.Win32Exception' occurred in System.dll
A first chance exception of type 'System.ObjectDisposedException' occurred in System.dll
A first chance exception of type 'System.ComponentModel.Win32Exception' occurred in System.dll
A first chance exception of type 'System.ObjectDisposedException' occurred in System.dll
A first chance exception of type 'System.ComponentModel.Win32Exception' occurred in System.dll
A first chance exception of type 'System.ObjectDisposedException' occurred in System.dll
A first chance exception of type 'System.ComponentModel.Win32Exception' occurred in System.dll
A first chance exception of type 'System.ObjectDisposedException' occurred in System.dll
A first chance exception of type 'System.ComponentModel.Win32Exception' occurred in System.dll
...(it keeps getting thrown until I stop it manually)
Hier sind die Dinge, die ich ausprobiert habe:
Stellen Sie sicher, dass die Geräte-ID, die ich versuche, mit einem Produktionsgeräte-Token registriert ist.Das APNS Production-Zertifikat wurde widerrufen, neu generiert und mit dem privaten Schlüssel in ein neues exportiert.p12
Datei und versuchte es erneut mit dem neuen Zertifikat. (Ich hatte das gleiche Problem mit Entwicklungs-Push-Benachrichtigungen, und dies löste mein Problem.)Änderte das SSL-Protokoll vonSsl3
zuTls
. (Vor ein paar Tagen gab es ein Problem mit der Protokollversion, das vorübergehend behoben wurde. Dies sollte nicht erforderlich sein, aber der Fehler, den ich erhalte, ist der gleiche wie der, den ich zuvor erhalten habe und den dieses Problem behoben hat.)Es wurde überprüft, ob ich tatsächlich versuche, eine Verbindung zum Produktionsserver mit dem Produktionszertifikat anstelle des Entwicklungsservers / -zertifikats herzustellen.Überprüft, ob ich direkt auf den APNS-Server zugreifen kann (meine ASP.NET-App befindet sich in einer Parallels VM Windows 8.1 auf meinem Mac. Hier ist die Ausgabe von meinem Mac, um Verwirrung zu vermeiden:(Terminal Ausgang)Bearbeiten: Ich habe den Sandbox-Server gepingt. Ich habe den Produktionsserver gepingt. Ich überprüfe, ob ich auch eine Verbindung herstellen kann. Es ist also nicht das Problem.
can$ sudo nmap -p 2195 gateway.sandbox.push.apple.com
Starting Nmap 6.40-2 ( http://nmap.org ) at 2014-04-28 00:06 EEST
Nmap scan report for gateway.sandbox.push.apple.com (17.149.34.189)
Host is up (0.49s latency).
Other addresses for gateway.sandbox.push.apple.com (not scanned): 17.149.34.187 17.149.34.188
PORT STATE SERVICE
2195/tcp open unknown
Warum sollte PushSharp nicht mit APNS-Servern verhandeln?