C# 调用SSPI失败-收到的消息意外或格式错误

C# 调用SSPI失败-收到的消息意外或格式错误,c#,.net,pushsharp,C#,.net,Pushsharp,我们正在使用一个稍微修改过的版本,该版本最近在我们的最新版本中停止工作。由于重写的时间限制,我们无法将其更新到4.x或3.x版本。在对代码的大部分方面进行了几天的修补之后,我不确定是什么导致了这个问题 每当我们试图处理数据时,我们都会收到以下错误(到目前为止,它看起来只是苹果方面的错误): 调用SSPI失败,请参阅内部异常。 位于System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken消息、AsyncProtocolR

我们正在使用一个稍微修改过的版本,该版本最近在我们的最新版本中停止工作。由于重写的时间限制,我们无法将其更新到4.x或3.x版本。在对代码的大部分方面进行了几天的修补之后,我不确定是什么导致了这个问题

每当我们试图处理数据时,我们都会收到以下错误(到目前为止,它看起来只是苹果方面的错误):

调用SSPI失败,请参阅内部异常。
位于System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken消息、AsyncProtocolRequest asyncRequest、异常)
位于System.Net.Security.SslState.StartSendBlob(字节[]传入,Int32计数,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.ProcessReceivedBlob(字节[]缓冲区,Int32计数,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.StartReceiveBlob(字节[]缓冲区,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.StartSendBlob(字节[]传入,Int32计数,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.ProcessReceivedBlob(字节[]缓冲区,Int32计数,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.StartReceiveBlob(字节[]缓冲区,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.StartSendBlob(字节[]传入,Int32计数,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.ProcessReceivedBlob(字节[]缓冲区,Int32计数,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.StartReceiveBlob(字节[]缓冲区,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.StartSendBlob(字节[]传入,Int32计数,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.ProcessReceivedBlob(字节[]缓冲区,Int32计数,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.StartReceiveBlob(字节[]缓冲区,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.StartSendBlob(字节[]传入,Int32计数,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.ProcessReceivedBlob(字节[]缓冲区,Int32计数,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.StartReceiveBlob(字节[]缓冲区,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.StartSendBlob(字节[]传入,Int32计数,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.ForceAuthentication(布尔值receiveFirst,字节[]缓冲区,AsyncProtocolRequest asyncRequest)
在System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult-lazyResult)上
在PushSharp.Apple.FeedbackService.Run(ApplePushChannelSettings设置,CancellationToken cancelToken)
在PushSharp.Apple.ApplePushService.c__;u DisplayClass4.b__;u 1(对象状态)
内部异常:System.ComponentModel.Win32Exception(0x80004005)
收到的消息是意外的或格式不正确
我们已经准备好了上面提到的修复程序。除了发布大量代码之外,我不确定哪些信息有助于调试。检索和加载证书时,我们没有收到任何问题或错误(日志记录表明证书已正确加载,版本正确)。由于旧证书已过期,我们最近确实对此证书进行了更新,但新证书正在正确加载


我们的基础设施没有发生任何可能意味着入站数据发生变化的变化。对保护帐户信息进行了一些屏蔽更改,但删除这些更改并不能解决问题,而且只能在日志记录期间发生。我遗漏了什么?

因为我找到了几个接近这个问题的答案,但没有完全解决它(而且因为PushSharp的Git页面表明他们对2.x中的问题不感兴趣),我将给出我的具体答案,希望它能帮助某人:

我的问题围绕着新证书。虽然我们安装了新证书,但我们没有添加保存证书私钥的p12文件,因此邮件无法正确加密

将p12文件安装到服务器解决了该问题


总而言之,这是一个相当明显的解决方案,解决了一个被过度思考的问题

由于我找到了几个接近这个问题的答案,但并没有完全解决它(而且因为PushSharp的Git页面表明他们对2.x中的问题不感兴趣),我将给出我的具体答案,希望它能帮助某人:

我的问题围绕着新证书。虽然我们安装了新证书,但我们没有添加保存证书私钥的p12文件,因此邮件无法正确加密

将p12文件安装到服务器解决了该问题


总而言之,这是一个相当明显的解决方案,解决了一个被过度思考的问题

如果它帮助了某人,我也遇到了这个问题,取消对调试推送代理的调用为我解决了这个问题。如果它帮助了某人,我也遇到了这个问题,取消对调试推送代理的调用为我解决了这个问题。
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