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

时间:2017-05-18 19:03:16

标签: sql entity-framework azure-sql-database azure-keyvault always-encrypted

我有一个包含几个加密列的表。数据库和Web应用程序都托管在Azure上。如果我在本地运行Web应用程序,代码工作正常,我按预期从表中获取解密数据。但是,当我将我的Web应用程序发布到Azure时,当应用程序尝试从加密表中读取时,我会收到超时。加密密钥存储在Azure Key Vault中。我使用实体框架和#34;列加密设置=启用"在连接字符串中设置。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

事实证明,最新版本的Microsoft.IdentityModel.Clients.ActiveDirectory dll(3.X)在异步调用方面做得不是很好。 AcquireTokenAsync方法一直在超时。

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

有关该主题的更多信息: https://github.com/Azure/azure-sdk-for-net/issues/1432

答案 1 :(得分:0)

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

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