我搜索了其他回复,对我有用的解决方案是插入
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
在调用失败的服务之前。
但是,我还有这些问题。
- 这是否只会更改该特定应用程序的默认协议(protocol)?
- 既然大多数(所有?)服务现在似乎都需要升级,为什么 Windows 更新没有更改默认设置?
- 既然服务需要它,为什么服务开发人员提供的库不在他们的代码中包含它?
- 我花了很长时间才发现问题的根源,因为来 self 的应用程序(来自 Microsoft 代码)的错误消息只给出了一个非常普遍的错误。我应该读什么来告诉我升级到 TLS 1.2 不是由 Windows 更新提供的?我花了很多时间认为这是防火墙问题....
- 最好的建议是在我的每个应用程序的开头包含上面的代码(以防万一!!)?
最佳答案
TLS 1.2 是 .NET Framework 4.6.2 及更高版本中的默认协议(protocol)。
如果您确保您的应用程序使用 4.6.2 或更高版本的目标框架运行,则无需包含该行代码。
当我遇到这个问题时,我还必须确保 <httpRuntime>
Web.config 中的节点明确指出目标框架(例如 <httpRuntime targetFramework="4.6.2" />
)
关于.net - 你能给我一些关于 .NET 和 TLS 1.2 的一般性建议吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52546466/