Si applica a
SQL Database SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Express - duplicate (do not use) SQL Server 2016 Service Pack 1 Key Vault

Sintomi

Considerare lo scenario descritto di seguito:

  • Si hanno applicazioni Microsoft .NET Framework che usano sempre crittografate in sql server 2016 o in database SQL di Azure.

  • Le chiavi master della colonna per queste applicazioni sono archiviate nel Vault della chiave di Azure.

In questo scenario le applicazioni si verificano in deadlock. Di conseguenza, le applicazioni diventano non rispondenti (blocco) o timeout. 

I deadlock possono verificarsi durante il tentativo di acquisire o aggiornare un token di autenticazione per il Vault della chiave di Azure.

Causa

Quando un'applicazione esegue query su colonne crittografate nel database, il provider di dati .NET Framework per SQL Server chiama il provider di archiviazione delle chiavi di Azure per sempre crittografato. Questo, a sua volta, chiama un'attività asincrona basata su applicazione che acquisisce o aggiorna un token per l'archiviazione delle chiavi di Azure. Questo percorso di codice in Azure Key Vault provider per le versioni di pacchetto NuGet sempre crittografate 2.0. x e 1. x. x è soggetto a deadlock perché chiama alcuni metodi asincroni in modo errato.

Risoluzione

Il problema è stato risolto per la prima volta in Azure Key Vault provider per la versione sempre crittografata di 2.1.0.Se si usa sempre il provider crittografato e Key Vault di Azure, è consigliabile ricostruire e ridistribuire l'applicazione in modo che usi il provider Key Vault di Azure per la versione sempre crittografata di 2.1.0 o versioni successive.

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.