TLS 1. 2 客户端和服务器无法通信,因为它们不具备通用算法

Rag*_*gwq 4 .net c# windows tls1.2

我对 TLS 1.2 有疑问。如果我在客户端计算机中启用 tls1.0,它可以工作,但不建议这样做。

例外是 - 客户端和服务器无法通信,因为它们不具备通用算法System.ComponentModel.Win32Exception (0x80004005):客户端和服务器无法通信,因为它们不具备通用算法。

我的应用程序的目标框架是.NET 4.6.2。

sag*_*ole 7

有两种可能的情况,在我的例子中我使用了第二点。

  1. 如果您在生产环境中遇到此问题,并且可以轻松地将新代码部署到生产中,那么您可以使用以下解决方案。

    您可以在进行 api 调用之前添加以下代码行,

    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; // .NET 4.5

  2. 如果您无法部署新代码并且希望使用生产中存在的相同代码来解决此问题,则可以通过更改配置文件中的某些配置设置来解决此问题。您可以在配置文件中添加其中之一。

<runtime>
    <AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=false"/>
  </runtime>
Run Code Online (Sandbox Code Playgroud)

或者

<runtime>
  <AppContextSwitchOverrides value="Switch.System.Net.DontEnableSystemDefaultTlsVersions=false"
</runtime>
Run Code Online (Sandbox Code Playgroud)