【问题标题】:How to use Azure Key Vault Provider with Always Encrypted Columns in Azure Function App如何在 Azure Function App 中将 Azure Key Vault 提供程序与始终加密的列一起使用
【发布时间】:2021-11-28 02:19:33
【问题描述】:

我已经在 Visual Studio 中创建了一个样板函数应用程序,它显然可以正常工作,但是,在添加 NuGet 包依赖项“Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider”并构建/运行 HTTP 触发器函数后应用程序,我收到以下控制台错误:

“启动操作期间发生主机错误”。 System.Private.CoreLib:无法加载文件或程序集 'Microsoft.Extensions.Logging.Abstractions,版本=5.0.0.0, 文化=中性,PublicKeyToken=''。系统找不到文件 指定。”

经过一段时间的研究,似乎一个简单的解决方法是将以下内容添加到我的 .csproj 中:

<_FunctionsSkipCleanOutput> true </_FunctionsSkipCleanOutput>

虽然,现在我遇到了以下我无法克服的错误:

我可能弄错了,但从我的研究来看,.NetCore 3.1(Azure 函数应用程序)不能很好地与 AlwaysEncrypted.AzureKeyVaultProvider 配合使用。

对此的任何帮助将不胜感激!

【问题讨论】:

  • 请参考这里也讨论过同样的问题,也有解决方法:github.com/Azure/Azure-Functions/issues/744
  • 感谢您的回复,拉胡尔。从 2018 年开始,这种不必要的工作已经过时了。但是,我能够找到简单地降级 Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider 包的解决方案。我最初认为这是导致问题的这个依赖包,但由于 NetCore 5 要求(我正在 3.1 中开发),导致问题的是提供程序包(版本 3.0)。

标签: azure-functions azure-sql-database azure-keyvault sqlclient always-encrypted


【解决方案1】:

解决方案通过卸载 NuGet 包并从 Visual Studio 的包管理器中重新安装 2.0 版,将 Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider 从 3.0 降级到 2.0 .

我相信解释是 AzureKeyVault 3.0 依赖于 Net Core 5.0 中的某些包,例如 Microsoft.Extensions.Memory.Cache(如果我没记错的话),我目前正在使用 NetCore 3.1 来开发这个 Azure Function App。

【讨论】:

    猜你喜欢
    • 2021-11-28
    • 2020-02-11
    • 1970-01-01
    • 2021-05-20
    • 2022-01-06
    • 2017-09-12
    • 2020-09-09
    • 1970-01-01
    • 2021-11-30
    相关资源
    最近更新 更多