我正在新机器上安装 Windows 服务。该服务通过 TCP 上的 SslStream 执行各种操作,该服务使用有问题的证书。
该服务在其他 2 台 windows 2003 机器上使用相同的代码和相同的证书运行良好。但是,这台新机器也是Windows 2003 64 位处理器。
当我尝试使用“服务帐户”身份运行服务时遇到了这个问题。它适用于我自己的凭据。(同样,它在其他 2 台使用此服务帐户的机器上运行良好)
导入证书时我没有启用“强保护”。
这是堆栈跟踪。
System.ComponentModel.Win32Exception:在 System.Net.Security.SecureChannel.AcquireCredentialsHandle(CredentialUse credUsage, SecureCredential&secureCredential) 在 System.Net.Security.SecureChannel.AcquireClientCredentials(Byte[]& thumbPrint) 在 System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 在 System
System.Net.Security.SslState.StartSendBlob(Byte[] 传入,Int32 计数,AsyncProtocolRequest asyncRequest)处的.Net.Security.SecureChannel.NextMessage(Byte[] 传入,Int32 偏移量,Int32 计数)
在 System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
在 System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
在 System.Net.Security .SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
在 System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
在 System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResultlazyResult) 在 System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation)