通过VS2022向导添加Azure Key Vault后,Azure门户无可见对象及连接字符串
先确认Key Vault实例是否匹配
登录Azure门户,搜索并打开你配置的Key Vault资源,核对资源名称是否和App Service环境变量里的Key Vault URL一致(URL格式一般是https://<vault-name>.vault.azure.net/),别进错了实例。直接查看「机密」模块
在Key Vault左侧导航栏找到「机密(Secrets)」选项点击进入——你的SQL连接字符串大概率是存在这里的。如果是发布向导自动创建的,机密名称通常和你项目里的连接字符串名称对应,比如AzureSqlConnectionString这类。刚添加的可能有延迟,刷新页面试试。再检查权限是否真的生效
虽然你有Key Vault Administrator权限,但还是要确认下当前登录账户的权限配置:进入Key Vault的「访问控制(IAM)」→「角色分配」,搜索你的账户,确保确实有「Key Vault Administrator」或者「机密用户」这类能读取机密的角色。权限分配有时候需要等几分钟才会生效,别急。确认发布向导是否自动同步了机密
回到App Service的「配置」→「应用程序设置」,看连接字符串的显示:如果是从Key Vault引用的,会标注「Key Vault引用」,而不是直接显示连接字符串值。要是直接显示值,说明向导没自动把连接字符串同步到Key Vault,得手动加。手动添加连接字符串到Key Vault(如果需要)
在Key Vault的「机密」页面点击「生成/导入」,选「手动创建」,输入机密名称(和项目里的连接字符串名称保持一致),值填SQL的连接字符串,设置好过期时间和启用状态后点「创建」。之后回到App Service的应用设置,把连接字符串的值改成@Microsoft.KeyVault(SecretUri=<机密的完整URI>),或者用门户的「从Key Vault引用」功能直接选对应的机密就行。
内容的提问来源于stack exchange,提问作者Yohanes AI

