C#应用程序无法建立SSL / TLS连接

时间:2017-03-23 14:52:36

标签: c# security ssl networking https

我有一个c#应用程序在尝试将文件保存到远程SharePoint服务器时生成错误“请求已中止:无法创建SSL / TLS安全通道”。这种情况发生在Windows 2012服务器上,但应用程序从我的桌面Windows机器成功运行。

此外,从开发服务器,我可以使用IE11连接到SharePoint服务器,只启用了TLS 1.1。

该应用程序已启用所有安全协议。

我也知道应用程序从不调用certificatevalidationcallback函数。

鉴于这些症状,有没有人知道会出现什么问题?

1 个答案:

答案 0 :(得分:0)

经过相当多的实验,我找到了解决方案,但我仍然感到困惑。解决方案原来是

的使用

System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls11;

这并不奇怪。令人惊讶的是,当我收到错误时,我正在使用

System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls11 | System.Net.SecurityProtocolType.Tls12;

我指定了这两种协议,因为我不确定远程服务器正在使用哪种协议,而且我认为允许这两种协议没有任何缺点。

现在我想知道为什么允许第二个协议导致应用程序无法建立安全通道。