对 SSPI 的调用失败,请参阅内部异常.收到的消息在 Windows 7 中是意外的或格式不正确]
本文关键字:意外 Windows 不正确 格式 失败 调用 SSPI 请参阅 内部 异常 消息 | 更新日期: 2023-09-27 18:33:36
>我收到以下错误" 对 sspi 的调用失败,请参阅内部异常。收到的消息在 Windows 7 中是意外的或格式不正确"。我尝试了所有可能的方法,但没有运气。请检查一下
这是代码
int port = 2195;
String deviceID = "d6c597fcc4e3426993cf29a3a8857efbed3462d5d8e9e32c0f8b387djkdklldk";
String hostname = "gateway.sandbox.push.apple.com"; // TEST
//String hostname = "gateway.push.apple.com"; // REAL
string p12FilePassword = "password";
// @"cert.p12";
String certificatePath = HttpContext.Current.Server.MapPath("~/Certificate.p12");
X509Certificate2 clientCertificate = string.IsNullOrEmpty(p12FilePassword) ? new X509Certificate2(File.ReadAllBytes(certificatePath)) : new X509Certificate2(File.ReadAllBytes(certificatePath), p12FilePassword, X509KeyStorageFlags.MachineKeySet);
X509Certificate2Collection certificatesCollection = new X509Certificate2Collection(clientCertificate);
TcpClient client = new TcpClient(hostname, port);
SslStream sslStream = new SslStream(client.GetStream(), false, ValidateServerCertificate, SelectLocalCertificate);
try
{
sslStream.AuthenticateAsClient(hostname, certificatesCollection, System.Security.Authentication.SslProtocols.Tls, false);
}
catch (Exception e)
{
throw (e);
//client.Close();
//return;
}
我看到这是一个旧帖子,但我最近遇到了这个问题。应用程序可以在我的 Windows10 上运行,但在 Windows 服务器 2008r2 和 2012r2 上失败。解决方案是摆脱SslStream,并使用openssl或bouncycastle等库进行tls连接。