我已经为此工作了几天,在阅读了许多关于此的文档后,我完全没有想法。
到目前为止我所做的:
项目是.Net Framework 4.7.2
在代码中,我拥有本地检索的机密,但未在部署时检索:
public static string GetSecret(string SecretName, string vaultURL)
{
var azureServiceTokenProvider = new AzureServiceTokenProvider();
var keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
return keyVaultClient.GetSecretAsync(vaultURL, SecretName).Result.Value;
}
请让我知道我所缺少的是什么导致我的Web应用程序无法访问密钥库。
答案 0 :(得分:0)
确保已更新所有与本地应用程序特别相关的信息。例如,如果它在本地运行而在发布时不起作用,则可能在代码或门户中存在对localhost环境的引用,并且需要将其更新为发布的环境。有时,在应用程序注册中,人们会留下对本地主机URL的引用,而不在此处和代码中添加已发布的网页URL。
另外,请分享您收到的错误。
答案 1 :(得分:0)
经过仔细的调试,我发现我的问题实际上是一个相对简单的问题。密钥保险库使用身份向我的Web应用授予了权限,但这是导致我出现问题的特定调用:ConfigurationManager.ConnectionStrings [1] .Name。目的是获得要输入到我的DBContext中的connectionStrings的名称。原来,这没有返回我在生产中期望的值。经过一些代码更改,问题就解决了!