如何解决如何修复“Microsoft.Azure.KeyVault.Models.KeyVaultErrorException:'操作返回无效状态代码'NotFound'”
我正在尝试从 ASP.net 5 Web API 应用程序中的 Azure Key Vault 获取值。但面临这个问题。
我已将此代码添加到 Program.cs 文件中
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.ConfigureAppConfiguration((context,config) =>
{
var builtConfig = config.Build();
var vaultName = builtConfig["keyvault"];
var keyVaultClient = new KeyVaultClient(
async (authoriy,resource,scope) =>
{
var credential = new DefaultAzureCredential(false);
var token = credential.GetToken(
new TokenRequestContext(
new[] {"https://vault.azure.net/.default" }
)
);
return token.Token;
});
config.AddAzureKeyVault(
vaultName,keyVaultClient,new DefaultKeyVaultSecretManager());
});
在 appsettings.json 文件中,我提供了这样的密钥库 URL。
"Keyvault": "https://<<vaultName>>.vault.azure.net/.default"
并且我创建了名称为“StorageConnectionString”的 Secret,我在 Azure Key-Vault 的类中使用。
public BlobContainerProvider(IConfiguration configuration)
{
string connectionString = configuration.GetValue<string>("StorageConnectionString");
blobServiceClient = new BlobServiceClient(connectionString);
}
提前致谢。
解决方法
我发现了这个问题,它实际上是在 appsettings.json
我已经提到它了
"Keyvault": "https://<<vaultName>>.vault.azure.net/.default"
而不应在 URL 中放置“.default”。
因此,通常,如果我们放置了不可用的密钥保管库 URL,则会引发此类错误。
@Gaurav Mantri,感谢您在评论中指出这一点。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。