间歇性错误访问Azure密钥保管库-密钥集不存在

时间:2019-06-21 11:54:26

标签: c# .net azure x509certificate azure-keyvault

我在MVC Web应用程序中使用Azure Key Vault。我使用证书连接到Key Vault。下面是我的示例代码

AssertionCert = GetCertificate(WebConfigurationManager.AppSettings[KeyVaultConstant.ApplicationID], WebConfigurationManager.AppSettings[KeyVaultConstant.CertificateThumbprint], false);    
var keyClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback((authority, resource, scope) => GetToken(authority, resource, scope, AssertionCert)));
var secrets = keyClient.GetSecretsAsync(WebConfigurationManager.AppSettings["VaultUri"]).GetAwaiter().GetResult();

在某些情况下,我会指出一个错误 加密例外:密钥集不存在

在研究中,我发现我必须授予IIS_IUser对存储主键的文件夹的权限。我这样做了,但是偶尔我会收到这个错误。这并非每次都会发生。

1 个答案:

答案 0 :(得分:1)

您对权限问题是正确的。以下是针对该问题的故障排除步骤:

故障排除步骤:

  • 首先检查运行CRM应用程序池或ADFS应用程序池的服务帐户
  • 现在打开证书管理器,在个人商店中找到您的证书。右键单击证书,然后选择“托管私钥”选项
  • 在权限窗口中,检查您的应用程序池服务帐户是否获得了适当的权限(“读取”权限应该很好,否则您可以授予“完全控制权”)
  • 在下面的屏幕快照中,我已将我的通配符证书* .test.local授予我的应用程序池帐户–“ test \ AppPoolSvc”的完全权限

enter image description here

  • 获得许可后,执行IISRESET并尝试访问。

有关更多参考,请check。另外,请尝试重新启动计算机以查看其是否正常运行。