Azure中始终加密的SQL Server 2016超时

Azure中始终加密的SQL Server 2016超时,sql,entity-framework,azure-sql-database,azure-keyvault,always-encrypted,Sql,Entity Framework,Azure Sql Database,Azure Keyvault,Always Encrypted,我有一个表,其中有两个加密列。数据库和web应用程序都托管在Azure上。如果我在本地运行web应用程序,代码工作正常,我会按预期从表中获得解密数据。但是,当我将我的web应用发布到Azure时,当应用尝试读取加密表时,我会超时。加密密钥存储在Azure密钥库中。我正在使用实体框架,并在连接字符串中设置“Column Encryption Settings=Enabled” 有什么想法吗?您使用的是哪一版本的Azure Key Vault Provider 已知较旧版本的Azure Key Va

我有一个表,其中有两个加密列。数据库和web应用程序都托管在Azure上。如果我在本地运行web应用程序,代码工作正常,我会按预期从表中获得解密数据。但是,当我将我的web应用发布到Azure时,当应用尝试读取加密表时,我会超时。加密密钥存储在Azure密钥库中。我正在使用实体框架,并在连接字符串中设置“Column Encryption Settings=Enabled”


有什么想法吗?

您使用的是哪一版本的Azure Key Vault Provider


已知较旧版本的Azure Key Vault提供程序会导致此问题,您是否可以尝试将该提供程序升级到

当涉及到异步调用时,Microsoft.IdentityModel.Clients.ActiveDirectory dll(3.X)的最新版本并不太好。AcquireTokenAsync方法一直在超时

我回滚到dll的2.X版本,现在它可以正常工作了。起初,我使用AcquireToken(非异步)方法,但当我尝试异步方法时,我发现它也可以工作。显然,问题一直是DLL的问题

有关此主题的更多信息:

有什么想法吗?是的,时间花在哪里了。隔离问题。在没有加密的情况下也会发生这种情况吗?你看过Azure的任何警告吗?没有加密是不会发生的。其他桌子上也不会发生这种情况。只是加密的。嗨。我使用的是最新版本的AKV提供程序,Microsoft.IdentityModel.Clients.ActiveDirectory命名空间的AcquireTokenAsync方法显然导致了死锁。问题是我并没有一直使用async/await。我真的不知道怎么做,因为我在重写的SqlColumnEncryptionKeysReprovider类中调用它,我将它添加到SQLConnection的加密密钥存储提供程序中。将ActiveDirectory dll降级为旧版本,该版本使用AcquireToken方法(非异步)解决了我的问题。