【发布时间】:2019-12-11 00:54:37
【问题描述】:
我在ConfigureAppConfiguration 方法中有特定代码我想在这里添加一些日志我尝试在下面编写代码但它失败了我该如何解决这个问题?或者有没有其他方法可以登录这个方法:
public static IWebHostBuilder AddKeyVault(this IWebHostBuilder builder)
{
return builder.ConfigureAppConfiguration(
(context, config) =>
{
var loggerFactory = builder.Build().Services.GetRequiredService<ILoggerFactory>(); // code fails here
var logger = loggerFactory.CreateLogger(typeof(WebHostBuilderCustomExtension));
// if (context.HostingEnvironment.IsProduction())
{
var cert = new X509Certificate2(File.ReadAllBytes("keyvaultcertificate.pfx"));
var builtConfig = config.Build();
config.AddAzureKeyVault(builtConfig["vaultname"], "8c372a04-8578-4c38-a58d-a821d85212cb",cert);
logger.LogInformation($"connected to key vault {builtConfig["azure.keyvault.uri"]}");
}
});
}
运行此代码时出现以下错误:
这是调用此方法的方式:
return WebHost.CreateDefaultBuilder(args).AddKeyVault()
.UseStartup<Startup>();
【问题讨论】:
-
它失败了如何?
-
如果您说“失败”或“出现错误”之类的内容,则应立即且始终紧随其后的是对问题和/或异常和堆栈跟踪的描述。
-
你是怎么打电话给
return builder.ConfigureAppConfiguration的?与我们分享您当前的 program.cs。您的第一部分和最后一部分代码之间的关系是什么? -
@TaoZhou program.cs 仅包含最后一部分代码,我更新了第一部分代码,它位于我创建的扩展方法 AddKeyVault() 下
标签: c# asp.net-core .net-core