gpt4 book ai didi

asp.net-core - 尝试在 Azure 函数中使用依赖注入(inject)时出现奇怪的异常

转载 作者:行者123 更新时间:2023-12-02 14:07:24 32 4
gpt4 key购买 nike

给定一个文件->新建->Azure Functions v2 应用程序,我试图获取对 ILoggerFactory 的引用或ILogger<T> .

我正在 StartUp.cs 中执行此操作在函数应用程序启动时运行的类。

给出以下代码,抛出一个奇怪的异常:

var serviceProvider = builder.Services.BuildServiceProvider();
var loggerFactory = serviceProvider.GetService<ILoggerFactory>();

但以下情况除外:

enter image description here

 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 .

最佳答案

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

如果您查看 WebJobs 的启动代码,您会看到添加了记录器 first ,之后the external startup gets executed最后是 required logging services被添加。对于您的情况,这顺序是错误的。

关于asp.net-core - 尝试在 Azure 函数中使用依赖注入(inject)时出现奇怪的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54900982/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com