You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

解决.NET更新Azure Key Vault密钥过期日期时的Version参数空值错误

解决Azure Key Vault更新Secret过期日期时的"Version cannot be null"错误

错误原因:直接通过new SecretProperties(secretName)实例化的对象不包含版本信息,而UpdateSecretProperties方法要求必须指定Secret的版本(Key Vault中Secret是版本化存储的,更新操作需针对特定版本),且Version字段为只读,无法直接赋值。

修正方案:先获取目标Secret的现有属性(包含版本信息),再修改过期时间后执行更新:

var credential = new ClientSecretCredential(_configuration[Constants.AZURE_TENANT_ID], _configuration[Constants.AZURE_CLIENT_ID], _configuration[Constants.AZURE_CLIENT_SECRET]);

var client = new SecretClient(new Uri(_configuration[Constants.KEY_VAULT_URL_UAT]), credential); 

// 获取目标Secret的最新版本属性(若需指定特定版本,可传入第二个参数version)
var secret = await client.GetSecretAsync(secretName);
var secretProperties = secret.Value.Properties;

// 设置新的过期时间
secretProperties.ExpiresOn = DateTimeOffset.Now.AddYears(2);

// 执行更新操作
await client.UpdateSecretPropertiesAsync(secretProperties);

补充说明:

  • GetSecretAsync返回的Secret实例包含完整的元数据(包括Version),以此为基础修改属性后,调用更新方法就能满足版本参数的要求。
  • 若需更新该Secret的所有版本,需遍历所有版本列表,逐个获取属性并执行更新操作,常规场景下仅需更新最新版本即可。

内容的提问来源于stack exchange,提问作者Afsar AF撒入

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 20:52:11