部署到 Azure 时无法让 Azure Key-Vault 在应用程序中工作

Not able to get Azure Key-Vault working in app when deployed to Azure

我已经使用 MVC.net 4.7.2 应用程序创建了一个应用程序,以将 Key Vault 密钥用于连接字符串。由于某种原因,它在部署到 Azure 时不起作用。以下是步骤。请提出基于 .net 而非 .net core 的解决方案。

  1. 我创建了一个 MVC.net 4.7.2 应用程序。实施了 Azure AD 身份验证并测试了我的应用程序,它工作正常没有问题。

  2. 然后我为数据库连接字符串创建了一个 Key Vault 机密。并从 Key Vault->Access Policy 授予我的应用程序权限

  1. 在应用层面。使用连接服务访问连接字符串的 Key Vault-> Secret。这在 webconfig 中添加了代码并添加了 nuget 包。请参阅下面的代码。

  2. 运行 没有连接字符串的本地代码,我能够获取数据。它工作完美,没有任何问题。我还能够确定该应用正在为连接字符串获取 Key Vault 机密。

  3. 已将应用部署到 Azure 应用服务。

  4. 运行 应用程序但我没有得到数据但是看到错误好像没有提供连接字符串。 错误

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error

我想做什么或检查什么才能让它工作。请注意,在本地,我可以使用我在 webconfig 中的代码获取数据。所以看起来没有问题。而且我还有 Azure AD 识别功能。

Web 配置代码:

<configSections><section name="configBuilders" 
  type="System.Configuration.ConfigurationBuildersSection, 
  System.Configuration, Version=4.0.0.0, Culture=neutral, 
 PublicKeyToken=b03f5f7f22d50a3a" 
 restartOnExternalChanges="false" 
 requirePermission="false" />
<builders>
 <add name="AzureKeyVault" vaultName="Prod-ConSt-01"type"  Microsoft 
.Configuration.ConfigurationBuilders.AzureKeyVaultConfigBuilder,
 Microsoft.Configuration.ConfigurationBuilders.Azure, 
Version=2.0.0.0, Culture=neutral,
 PublicKeyToken=31bf9256ad364e35"
 vaultUri="https://mywebsite-prod-const-01.vault.azure.net/" />< 
/builders>
</configBuilders>

<connectionStrings configBuilders="AzureKeyVault">
 <add name="ProductionConnstr" connectionString="from key vault" 
   providerName="System.Data.SqlClient" />
</connectionStrings>

这不是 Key Vault 问题 - 它似乎可以正常访问 Key Vault,因为它正在尝试联系数据库。检查您允许的 IP 范围以允许您的网站联系数据库。