Pur*_*ome 10 dependency-injection .net-core asp.net-core azure-functions
给定 File->New->Azure Functions v2 App,我试图获取对 anILoggerFactory或ILogger<T>.
我StartUp.cs在函数应用程序启动时运行的类中执行此操作。
鉴于以下代码,抛出了一个奇怪的异常:
var serviceProvider = builder.Services.BuildServiceProvider();
var loggerFactory = serviceProvider.GetService<ILoggerFactory>();
Run Code Online (Sandbox Code Playgroud)
除了以下情况:
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
Run Code Online (Sandbox Code Playgroud)
到底是怎么回事?
完整的测试仓库/代码可以在 GitHub 上找到。
在您创建依赖注入容器并尝试解析 StartUp 类中的记录器时,似乎尚未设置IFileLoggingStatusManager所需的某些基础结构(例如)HostFileLoggerProvider。我认为您应该将日志记录延迟到应用程序完全启动之后。
如果您查看 WebJobs 的启动代码,您会看到首先添加记录器,然后执行外部启动,最后添加所需的日志记录服务。对于您的情况,哪个顺序是错误的。
| 归档时间: |
|
| 查看次数: |
4820 次 |
| 最近记录: |