C# 访问Azure密钥库时出现间歇性错误-密钥集不存在
我正在MVC web应用程序中使用Azure Key Vault。我使用证书连接到密钥库。下面是我的示例代码C# 访问Azure密钥库时出现间歇性错误-密钥集不存在,c#,.net,azure,x509certificate,azure-keyvault,C#,.net,Azure,X509certificate,Azure Keyvault,我正在MVC web应用程序中使用Azure Key Vault。我使用证书连接到密钥库。下面是我的示例代码 AssertionCert = GetCertificate(WebConfigurationManager.AppSettings[KeyVaultConstant.ApplicationID], WebConfigurationManager.AppSettings[KeyVaultConstant.CertificateThumbprint], false); var ke
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用户对存储主键的文件夹的权限。我做到了,但偶尔我会犯这样的错误。这种情况并非每次都会发生。关于权限问题,您是对的。以下是针对相同问题的故障排除步骤: 故障排除步骤:
- 首先检查运行CRM应用程序池或ADFS应用程序池的服务帐户
- 现在打开证书管理器,在个人存储中找到您的证书。右键单击证书并选择“托管私钥”选项
- 在“权限”窗口中,检查您的应用程序池服务帐户是否获得了适当的权限(读取权限应该可以,否则您可以授予完全控制权)
- 在下面的屏幕截图中,我已对我的应用程序池帐户的通配符证书*.test.local授予了完全权限—“test\AppPoolSvc”
- 授予权限后,执行IISRESET并尝试访问