1

我有一个 Windows 服务,它定期使用 .NET Socket 类连接到主机。它是使用 SMTP 协议的标准 TCP/IP 连接。

连接由存储在智能卡上的证书保护。我正在使用 SslStream 类来处理 SSL 内容。

这在大多数情况下都有效。但是在随机时间点,身份验证失败。我收到此错误:

A call to SSPI failed, see inner exception.
Error type:
System.Security.Authentication.AuthenticationException
Server stack trace: 
at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result)
at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)

内部异常:

System.ComponentModel.Win32Exception
The Local Security Authority cannot be contacted

尝试失败后,AuthenticationExcpetion 仍然存在,但内部异常发生了变化:

A signature operation must be performed before the user can authenticate

此时我必须重新启动服务,它现在将完美连接。SSL 握手会在错误再次发生之前工作一段时间(有时是几天)。

4

0 回答 0