Не удалось выполнить вызов SSPI — полученное сообщение было неожиданным или неправильно отформатировано.

Мы используем слегка модифицированную версию PushSharp v2.2.1.0, который недавно перестал работать в нашей последней сборке. Мы не можем обновить его до версий 4.x или 3.x из-за нехватки времени на переписывание. После нескольких дней возни с большинством аспектов кода я не уверен, что еще может быть причиной проблемы.

Мы получаем следующую ошибку всякий раз, когда пытаемся обработать данные (пока что это похоже только на Apple):

A call to SSPI failed, see inner exception.
at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
at PushSharp.Apple.FeedbackService.Run(ApplePushChannelSettings settings, CancellationToken cancelToken)
at PushSharp.Apple.ApplePushService.<>c__DisplayClass4.<.ctor>b__1(Object state) 

Inner Exception: System.ComponentModel.Win32Exception (0x80004005)
The message received was unexpected or badly formatted

Мы уже упоминали исправление здесь на месте. За исключением публикации большого количества кода, я не уверен, какая информация поможет в отладке. Мы не получаем никаких проблем или ошибок при получении и загрузке сертификата (логирование показывает, что он правильно загружен и имеет правильные версии). Мы недавно обновили этот сертификат, так как срок действия старого истек, но новый загружается правильно.

Ничего не изменилось в нашей инфраструктуре, что подразумевало бы изменение входящих данных. Были внесены некоторые маскирующие изменения для защиты информации учетной записи, но удаление этих изменений не решило проблему, и в любом случае она должна возникать только во время ведения журнала. Что мне не хватает?


person Marshall Tigerus    schedule 27.02.2017    source источник


Ответы (1)


Поскольку я нашел несколько ответов, которые были близки к этой проблеме, но не совсем решили ее (и поскольку на странице Git PushSharp указано, что они не заинтересованы в проблемах из 2.x), я приведу свой конкретный ответ в надежде, что он кому-то поможет:

Моя проблема связана с новым сертификатом. Хотя мы установили новый сертификат, мы не добавили файл p12, содержащий закрытый ключ сертификата, поэтому сообщения не могли быть должным образом зашифрованы.

Установка файла p12 на сервер решила проблему.

В общем, довольно очевидное решение проблемы, над которой слишком много думали.

person Marshall Tigerus    schedule 27.02.2017
comment
Если это кому-то поможет, я также столкнулся с этой проблемой, и избавление от вызова Debug Push Broker решило ее для меня. - person torial; 20.04.2017