我的 C# 应用程序在尝试将文件保存到远程 SharePoint 服务器时生成错误“请求已中止:无法创建 SSL/TLS 安全通道”。这发生在 Windows 2012 服务器上,但应用程序在我的桌面 Windows 机器上成功运行。
此外,在开发服务器上,我可以使用 IE11 连接到 SharePoint 服务器,并且只启用了 TLS 1.1。
应用程序启用了所有安全协议(protocol)。
我也知道应用程序从不调用 certificatevalidationcallback 函数。
鉴于这些症状,有人知道可能出了什么问题吗?
最佳答案
经过大量实验,我找到了解决方案,但我仍然感到困惑。解决方案原来是使用
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls11;
这并不奇怪。令人惊讶的是,当我收到错误时,我正在使用
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls11 | System.Net.SecurityProtocolType.Tls12;
我指定了这两种协议(protocol),因为我不确定远程服务器使用的是哪种协议(protocol),而且我认为允许这两种协议(protocol)都没有坏处。
现在我想知道为什么允许第二个协议(protocol)会导致应用程序无法建立安全通道。
关于C# 应用程序无法建立 SSL/TLS 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42979594/