【发布时间】:2019-07-20 21:50:16
【问题描述】:
给定一个文件->新建->Azure Functions v2 应用程序,我正在尝试获取对 ILoggerFactory 或 ILogger<T> 的引用。
我在函数应用启动时运行的 StartUp.cs 类中执行此操作。
给定以下代码,抛出一个奇怪的异常:
var serviceProvider = builder.Services.BuildServiceProvider();
var loggerFactory = serviceProvider.GetService<ILoggerFactory>();
以下例外:
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
发生了什么事?
完整的测试仓库/代码可以是found here on GitHub。
【问题讨论】:
-
我遇到了同样的错误,但是在我为 Azure 函数注入的服务中,函数的执行很好。你能解决这个问题吗?
-
这里也一样。您能找出导致此错误消息的原因吗?
-
你找到你的问题了吗@AnthonyPotts?我刚刚将一个函数从 V2 升级到 V3,现在这个问题也很好地进入了函数的执行
-
@Adrian 不,我最终使用了我从几篇博文中手工制作的 IOC。
-
我们在尝试访问 Startup 中的记录器时遇到了同样的问题。我们最终注册了两次,一次在记录器工厂内:
var loggerFactory = LoggerFactory.Create(loggingBuilder => // register your loggers for use in Startup here again);
标签: asp.net-core dependency-injection .net-core azure-functions