Ald*_*jal 6 .net c# ssl sspi schannel
在我公司中,我们有一个用C#开发的Windows服务,用于使用SSLStream和Tls12以及服务器和客户端证书来处理来自客户端的请求消息。该服务在Windows Server 2012(包括Windows 10 PC)上都运行良好,无论是以发布模式执行还是调试以检查代码,但是最近执行AuthenticateAsServer时会引发异常。一段代码是:
ServicePointManager.SecurityProtocol = SslProtocols.Tls12;
SslStream secureClient = new SslStream(networkStream, false);
secureClient.AuthenticateAsServer(serverCertificate);
Run Code Online (Sandbox Code Playgroud)
networkStream是具有服务的IP和端口的NetworkStream的实例。serverCertificate是X509Certificate2,它以自签名的方式安装在本地计算机存储中。客户端具有相同的证书。异常详细信息如下:
System.Security.Authentication.AuthenticationException
HResult=-2146233087
Message=A call to SSPI failed, see inner exception.
Source=System
StackTrace:
at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception)
at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, 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.CheckCompletionBeforeNextReceive(ProtocolToken message, 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.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
at System.Net.Security.SslStream.AuthenticateAsServer(X509Certificate serverCertificate)
at TransakcioClassLib.ServiceStream..ctor(Int64 id, NetworkStream networkStream, Boolean isSecure, X509Certificate2 serverCertificate) in c:\Developer\OmniPay\0-Development\OmniGateway\TransakcioClassLib\TransakcioClassLib\TransakcioClassLib.cs:line 6311
at TransakcioClassLib.TransakcioServer.ProcessClientRequestBlocking() in c:\Developer\OmniPay\0-Development\OmniGateway\TransakcioClassLib\TransakcioClassLib\TransakcioClassLib.cs:line 2658
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException: System.ComponentModel.Win32Exception
HResult=-2147467259
Message=The function requested is not supported
ErrorCode=-2147467259
NativeErrorCode=-2146893054
InnerException:
Run Code Online (Sandbox Code Playgroud)
正如我之前提到的,直到几天前,服务一直工作良好。任何帮助将不胜感激。
归档时间: |
|
查看次数: |
1349 次 |
最近记录: |