Asp.net core 尝试在Azure函数中使用依赖项注入时出现奇怪的异常

Asp.net core 尝试在Azure函数中使用依赖项注入时出现奇怪的异常,asp.net-core,dependency-injection,.net-core,azure-functions,Asp.net Core,Dependency Injection,.net Core,Azure Functions,给定一个File->New->Azure Functions v2应用程序,我试图获取对ILogger工厂或ILogger的引用 我在函数app start上运行的StartUp.cs类中执行此操作 给定以下代码,将引发一个奇怪的异常: var serviceProvider = builder.Services.BuildServiceProvider(); var loggerFactory = serviceProvider.GetService<ILoggerFactory>

给定一个File->New->Azure Functions v2应用程序,我试图获取对
ILogger工厂
ILogger
的引用

我在函数app start上运行的
StartUp.cs
类中执行此操作

给定以下代码,将引发一个奇怪的异常:

var serviceProvider = builder.Services.BuildServiceProvider();
var loggerFactory = serviceProvider.GetService<ILoggerFactory>();         
发生了什么事


完整的测试repo/code可以是。

在创建依赖项注入容器并尝试在启动类中解析记录器时,似乎还没有设置
HostFileLoggerProvider
所需的某些基础结构(例如
IFileLoggingStatusManager
)。我认为您应该将日志记录延迟到应用程序完全启动之后


如果您查看WebJobs的启动代码,您将看到日志程序被添加,然后,最后是日志程序被添加。你的案子顺序不对。

亨克:你知道这种情况下的解决办法吗?我希望能够将ILogger注入到启动时引导的依赖项(builder.Services.AddSingleton…)中,最好是作为我的Azure Functional中启动的一部分,如下所述:“您不能在服务初始化期间请求ILogger——一些日志记录器此时尚未注册其所有依赖项。”在本文中,我建议使用设计模式。我得到了相同的错误,但在函数的执行过程中,我已经为Azure函数注入了一个服务。你能弄明白吗?这里也是。你能找出这条错误消息的原因吗?你找到你的问题@AnthonyPotts了吗?我刚刚将一个函数从V2升级到V3,现在在执行function@Adrian不,我最终使用了我从几篇博文中亲手翻出的国际奥委会。
 A host error has occurred
[27/02/2019 8:21:22 AM] Microsoft.Extensions.DependencyInjection: Unable to resolve service for type 'Microsoft.Azure.WebJobs.Script.IFileLoggingStatusManager' while attempting to activate 'Microsoft.Azure.WebJobs.Script.Diagnostics.HostFileLoggerProvider'.
Value cannot be null.
Parameter name: provider