我有一个有几个加密列的表。数据库和 Web 应用程序都托管在 Azure 上。如果我在本地运行 Web 应用程序,则代码可以正常工作,并且我可以按预期从表中获取解密数据。但是,当我将 Web 应用程序发布到 Azure 时,当应用程序尝试从加密表中读取时,我会遇到超时。加密密钥存储在 Azure Key Vault 中。我在连接字符串中使用带有“列加密设置 = 已启用”设置的实体框架。
有任何想法吗?
我有一个有几个加密列的表。数据库和 Web 应用程序都托管在 Azure 上。如果我在本地运行 Web 应用程序,则代码可以正常工作,并且我可以按预期从表中获取解密数据。但是,当我将 Web 应用程序发布到 Azure 时,当应用程序尝试从加密表中读取时,我会遇到超时。加密密钥存储在 Azure Key Vault 中。我在连接字符串中使用带有“列加密设置 = 已启用”设置的实体框架。
有任何想法吗?
事实证明,最新版本的 Microsoft.IdentityModel.Clients.ActiveDirectory dll (3.X) 在异步调用方面表现不佳。AcquireTokenAsync 方法一直超时。
我回滚到 dll 的 2.X 版本,现在它工作正常。起初,我使用的是 AcquireToken(非异步)方法,但当我也尝试了 Async 方法时,我发现它也有效。显然问题一直出在 DLL 上。
有关该主题的更多信息: https ://github.com/Azure/azure-sdk-for-net/issues/1432
你使用的是哪个版本的 Azure Key Vault Provider?
已知旧版本的 Azure Key Vault 提供程序会导致此问题,您能否尝试将提供程序升级到最新版本