Мое приложение только что было готово к продаже в App Store, но ни одно из моих производственных устройств (устройств, на которых установлено приложение из App Store) не получает push-уведомления. Когда я пытаюсь отправить push-уведомление на производственное устройство, я получаю следующую ошибку:
"The credentials supplied to the package were not recognized"
(System.ComponentModel.Win32Exception)
Это исключение создается внутренне и попадает в бесконечный цикл:
Он помещается в строку 539 файла ApplePushChannel.cs
:
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);
}
Это результат работы приложения в 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)
Вот что я пробовал:
- Дважды проверил, что идентификатор устройства, который я пытаюсь, зарегистрирован с токеном производственного устройства.
- Отменил и регенерировал производственный сертификат APNS, экспортировал его с закрытым ключом в новый файл
.p12
и повторил попытку с новым сертификатом. (У меня была такая же проблема с push-уведомлениями разработки, и это решило мою проблему) - Изменен протокол SSL с
Ssl3
наTls
. (несколько дней назад возникла проблема с версией протокола, и она временно устранила проблему. В этом не должно быть необходимости, но ошибка, которую я получаю, такая же, как и та, которую я получал, до которой она исправлена) - Проверено, что я действительно пытаюсь подключиться к производственному серверу с производственным сертификатом вместо сервера / сертификата разработки.
- Проверено, что я могу получить доступ к серверу APNS напрямую (мое приложение ASP.NET находится внутри виртуальной машины Parallels Windows 8.1 на моем Mac, вот результат моего Mac, просто чтобы избежать путаницы:
(Вывод терминала) Изменить: я проверял связь с сервером песочницы, я проверял связь с производственным сервером, я проверяю, могу ли я подключиться к нему, так что проблема не в этом. strong >
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
Почему PushSharp не ведет переговоры с серверами APNS?