我正在运行 C# WPF net Framework 4.7.2 应用程序,该应用程序已在 1200 台计算机上运行了大约 18 个月。
就在今天早上,我接到了支持电话,因为许多计算机无法加载我们的应用程序。
在调试中,我们发现 RestSharp 在获取安全通道时遇到问题:
请求被中止:无法创建 SSL/TLS 安全通道。 没有预期数据
经过更多研究,我发现似乎受影响的计算机都是 WINDOWS 7 计算机。
我的 RestSharp 代码中有这个:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
(以防万一有人提到它)
问题几天前才开始,但我似乎找不到解决方案。
当用户加载我们的网站时,它工作正常,所以它似乎与 RestSharp 或网络框架更新有关??
任何人都可以告诉我如何解决这个问题或进一步诊断,因为我是一家初创公司,现在确实无法让这些系统离线。
我确实意识到 Windows 7 已经过时了,但它已经运行了 18 个月,所以我的客户不会接受我说“获取新的电脑”作为答案。
非常感谢您的建议。
您的客户可以使用管理员权限运行某些东西吗?如果是这样,请尝试使用此 PS 脚本启用 TLS 1.2:
New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -Force
New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -Force
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -name 'Enabled' -value '1' –PropertyType 'DWORD'
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -name 'DisabledByDefault' -value '0' –PropertyType 'DWORD'
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -name 'Enabled' -value '1' –PropertyType 'DWORD'
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -name 'DisabledByDefault' -value '0' –PropertyType 'DWORD'
Write-Host 'Enabling TLSv1.2'
这对我有用。 MS 正在加大 W7 的使用难度(显然他们希望你升级)。