System.ServiceModel.Security.SecurityNegotiationException:无法使用授权“ dev.xyz.com”为SSL / TLS建立安全通道

我的WCF服务是.Net 3.5,我的Web应用程序aspx也是.Net 3.5。我们最近从Windows Server 2010迁移到Server 2016。

我们遇到以下错误:

System.ServiceModel.Security.SecurityNegotiationException:无法使用授权“ dev.xyz.com”为SSL / TLS建立安全通道

    ………………………………………………

我搜索了几个博客,他们建议添加代码:

servicepointManager.SecurityProtocol = (SecurityProtocolType)3072;

我不确定此行是否可以解决问题。

我也不知道如何在我的代码中使用此语句:

System.ServiceModel.Security.SecurityNegotiationException:无法使用授权“ dev.xyz.com”为SSL / TLS建立安全通道

miaobh 回答:System.ServiceModel.Security.SecurityNegotiationException:无法使用授权“ dev.xyz.com”为SSL / TLS建立安全通道

此错误主要表明信任关系存在问题。由于服务器端的服务受证书保护,因此在进行呼叫之前,我们应该信任服务器证书。同时,服务器计算机和客户端计算机都将通过SSL/TLS协议协商通信,该协议由操作系统和Dotnet框架版本确定。
https://docs.microsoft.com/en-us/dotnet/framework/network-programming/tls
可以通过以下语句建立信任关系。
客户端(只需在拨打电话之前将其添加)。

ServicePointManager.ServerCertificateValidationCallback += delegate
            {
                return true;
            };
            Uri uri = new Uri("http://10.157.13.69");
            ChannelFactory<IService> factory = new ChannelFactory<IService>(new BasicHttpBinding(),new EndpointAddress(uri));    

或者,我们可以在本地CA中安装服务器证书。
enter image description here
此行代码段通常指定TLS/SSL版本,建议操作系统决定TLS / SSL版本,否则不建议使用此版本。

ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;

与上述用于信任服务器证书的语句一样,我们只是在进行调用之前将其添加到客户端。
随时让我知道是否有什么可以帮助您的。

本文链接:https://www.f2er.com/3141656.html

大家都在问