我有一个Windows服务,它使用.NET Socket类定期连接到主机。它是使用SMTP协议的标准TCP / IP连接。
使用存储在智能卡上的证书来保护Connection。我正在使用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握手将会工作一段时间(有时是几天)。