Dieser Artikel gilt auch für:
- Microsoft .NET Framework 3.5
Zusammenfassung
Bei Kunden, die .NET Framework-Anwendungen ausführen, die auf Transport Layer Security (TLS) 1.2 angewiesen sind, wie z. B. Intuit QuickBooks Desktop, können nach dem Upgrade ihres Systems auf eine neuere Version von Windows Konnektivitätsfehler auftreten.
Symptome
Nehmen Sie folgendes Szenario an:
- Sie führen eine Anwendung aus, die auf dem Transport Layer Security (TLS) 1.2-Protokoll basiert.
- Die Anwendung verwendet das SchUseStrongCrypto-Registrierungsschlüsselflag.
- Die Anwendung stellt eine TLS 1.2 Client-Server-Verbindung her.
- Sie aktualisieren das Windows-Betriebssystem auf diesem Computer auf eine neuere Version.
In diesem Szenario beobachten Sie Konnektivitätsfehler nach dem Upgrade. Zu den Fehlern können unter anderem die folgenden Ausnahmemeldungen und inneren Ausnahmemeldungen gehören:
Hinweis
System.Net.Http.HttpRequestException: Beim Senden der Anforderung ist ein Fehler aufgetreten.
System.Net.WebException: Die Anforderung wurde abgebrochen: Es konnte kein geschützter SSL/TLS-Kanal erstellt werden.
bei System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
bei System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)
Ursache
Dieses Problem tritt auf, weil das SchUseStrongCrypto-Flag während des gesamten Windows-Upgradeprozesses nicht beibehalten wird.
Problemumgehung
Verwenden Sie eine der folgenden Methoden, um dieses Problem zu umgehen.
Problemumgehung 1
Aktivieren Sie die TLS 1.2-Unterstützung als computerweites Standardprotokoll erneut, indem Sie das SchUseStrongCrypto-Registrierungsschlüsselflag mit dem DWORD-Wert 1 wie folgt festlegen:
<HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\VERSION:> SchUseStrongCrypto
Hinweis Sie müssen "[Wow6432Node\]" hinzufügen, wenn die Anwendung als 32-Bit-Prozess auf einem 64-Bit-Betriebssystem ausgeführt wird, und VERSION> entweder auf v4.0.30319 (für .NET Framework 4 und neuere Versionen) oder v2.0.50727 (für .NET Framework 3.5) festlegen<.
Problemumgehung 2
Aktivieren Sie die TLS 1.2-Unterstützung für Ihre spezielle Anwendung (nicht computerweit), indem Sie einen AppContext-Schalter im Abschnitt "<Laufzeit>" Ihrer Konfigurationsdatei verwenden, wie folgt:
<runtime>
<AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=false" />
</runtime>
Hinweis Mit dieser Option können Sie verhindern, dass dieses Problem in zukünftigen Windows-Upgrades wiederkehrt, da die Einstellung ordnungsgemäß beibehalten wird.
Status
Microsoft hat dieses Problem nun für einige Geräte behoben. Seit dem 16. August 2018 steht für Kunden, die Intuit QuickBooks installiert haben, ein Update im Microsoft Update-Katalog zur Verfügung.
Diese Kunden können auch auf Windows Update nach Updates suchen Windows Update indem sie unter "Einstellungen> "Update" & "Sicherheit>" die Option "Nach Updates suchen" auswählen.
Für Geräte, auf denen Intuit QuickBooks nicht installiert ist und bei denen dieses Problem auftritt: Microsoft arbeitet an einer Lösung und wird in einer zukünftigen Version ein Update bereitstellen.