Es gibt zwei mögliche Szenarien:
Wenn Ihre Anwendung auf .net Framework 4.5 oder weniger ausgeführt wird und Sie problemlos neuen Code für die Produktion bereitstellen können, können Sie die folgende Lösung verwenden.
Sie können die folgende Codezeile hinzufügen, bevor Sie den API-Aufruf ausführen.
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072
Wenn Sie keinen neuen Code bereitstellen können und das Problem mit demselben Code beheben möchten, der in der Produktion vorhanden ist, haben Sie zwei Möglichkeiten.
Option 1 :
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
"SchUseStrongCrypto"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319]
"SchUseStrongCrypto"=dword:00000001
Erstellen Sie dann eine Datei mit der Erweiterung .reg
und installieren Sie sie.
Hinweis: Diese Einstellung gilt auf Registrierungsebene und gilt für alle auf diesem Computer vorhandenen Anwendungen. Wenn Sie sich auf nur eine Anwendung beschränken möchten, können Sie sie verwendenOption 2
Option 2 : Dies kann durch Ändern einiger Konfigurationseinstellungen in der Konfigurationsdatei erfolgen. Sie können entweder in Ihrer Konfigurationsdatei hinzufügen.
<runtime>
<AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=false"/>
</runtime>
oder
<runtime>
<AppContextSwitchOverrides value="Switch.System.Net.DontEnableSystemDefaultTlsVersions=false"
</runtime>
SecurityProtocolType
kein Mitglied vorhanden istTls12
.