Problembeschreibung
Stellen Sie sich folgendes Szenario vor:
-
Sie verfügen über Microsoft .NET Framework-Anwendungen, die immer in SQL Server 2016 oder Azure SQL-Datenbank verschlüsselt verwendet werden.
-
Die Spalten Masterschlüssel für diese Anwendungen werden im Azure Key Vault gespeichert.
In diesem Szenario erleben die Anwendungen Deadlocks. Daher werden die Anwendungen nicht mehr reagiert (hängt) oder Timeout.
Die Deadlocks können auftreten, wenn Sie versuchen, ein Authentifizierungstoken für den Azure Key Vault abzurufen oder zu aktualisieren.
Ursache
Wenn eine Anwendung verschlüsselte Spalten in der Datenbank abfragt, ruft der .NET Framework-Datenanbieter für SQL Server den Azure Key Vault-Anbieter für immer verschlüsselt auf. Dies ruft wiederum eine anwendungsbasierte asynchrone Aufgabe auf, die ein Token für Azure Key Vault erwirbt oder aktualisiert. Dieser Codepfad im Azure Key Vault-Anbieter für immer verschlüsselte NuGet-Paketversionen 2.0. x und 1. x. x ist anfällig für Deadlocks, da einige asynchrone Methoden auf falsche Weise aufgerufen werden.
Fehlerbehebung
Das Problem wurde zuerst in Azure Key Vault-Anbieter für immer verschlüsselte Version 2.1.0behoben.Wenn Sie immer verschlüsselte und Azure Key Vault-Anbieterverwenden, wird dringend empfohlen, dass Sie die Anwendung neu erstellen und erneut bereitstellen, damit Sie den Azure Key Vault-Anbieter für immer verschlüsselte Version 2.1.0 oder höher verwendet.