2

我正在尝试将 .netcore 框架从 2.2 升级到 3.1 。但我也想在 3.1 中使用 IHostingEnvironment、IWebHostBuilder 和 AddNewtonsoftJson。(我知道它们应该被替换,但如果我这样做,将需要代码重构,我现在不需要)。

当我使用 swagger 执行 api 时,收到 500 错误消息:

无法解析 JSON。原始结果:System.Exception:找不到方法:'Microsoft.Extensions.Logging.ILoggerFactory Microsoft.Extensions.Logging.ConsoleLoggerExtensions.AddConsole(Microsoft.Extensions.Logging.ILoggerFactory, Microsoft.Extensions.Logging.LogLevel)'。

这是堆栈跟踪的开始

失败:Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[1] 执行请求时发生未处理的异常。System.MissingMethodException:找不到方法:'Microsoft.Extensions.Logging.ILoggerFactory Microsoft.Extensions.Logging.ConsoleLoggerExtensions.AddConsole(Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Logging.LogLevel)'。

我只在 Program.cs 中配置 Logger。

 public static IWebHostBuilder CreateWebHostBuilder (string[] args) =>
            WebHost.CreateDefaultBuilder (args)
            .UseUrls ("http://0.0.0.0:5000")
            .ConfigureLogging ((hostingContext, logging) => {
                logging.AddConfiguration (hostingContext.Configuration.GetSection ("Logging"));
                logging.AddConsole ();
                logging.AddApplicationInsights ();
            })
            .UseStartup<Startup> ();
    }

appsettings.json 中的配置

"Logging": {
        "IncludeScopes": false,
        "ApplicationInsights": {
            "LogLevel": {
                "Default": "Warning",
                "Microsoft": "Error"
            }
        },
        "LogLevel": {
            "Default": "Information",
            "System": "Warning",
            "Microsoft": "Warning"
        },
        "Console": {
            "IncludeScopes": true
        }
    }

我不明白为什么它不起作用。

注意:我在这个项目中有 6 个 API,其中 1 个成功完成上述更改,5 个失败并出现上述错误。

4

0 回答 0