更新:修复在下面的评论中。主持人能否将其固定为答案。谢谢!
我正在尝试设置Azure KeyVault,而无需对我的Web.Config文件进行任何代码更改。我有一个Web应用程序,该应用程序具有用于数据存储的SQL数据库,并且我试图以这种方式替换connectionString,以便在使用Azure App Service配置的应用程序部署过程中动态注入该连接字符串。我正在使用对我的密钥库机密的引用在我的App服务配置中对此进行引用。但是,我无法访问数据,并且出现以下错误:
我尝试了以下操作:
如您所见,我使用的是来自KeyVault的以下形式的引用:
@ Microsoft.KeyVault(SecretUri = https://xxx.vault.azure.net/secrets/mysecret/xxxzxxzxxzxzx)
我什至尝试使用这样的引用:
@ Microsoft.KeyVault(VaultName = xxx-kv-arm; SecretName = connectionString; SecretVersion = xxx)
在我的Azure App Service配置中,以从密钥库访问机密,并在部署期间将其作为connectionString传递。
我的Web.config:
<?xml version="1.0" encoding="utf-8"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=301880
-->
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<connectionStrings>
<add name="SchoolContext" connectionString=" " providerName="System.Data.SqlClient" />
</connectionStrings>
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
</configuration>
我到底在做什么错?
答案 0 :(得分:1)
但是,我的azure活动目录中没有看到此应用程序服务, 关于这为什么的任何线索?
您可以在企业应用程序下找到该应用程序,请记住将应用程序类型设置为所有应用程序。
该问题已由操作员解决,只需将其添加到答案中即可使其对其他人可见。
转到App服务,转到“身份”,然后启用系统分配的身份。这将使我们能够转到我的Key Vault实例并为此应用程序服务本身而不是新的Azure Active Directory配置访问策略。
这里是document供您参考。