第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

啟動控制器時 ASP.NET Core 3 記錄錯誤

啟動控制器時 ASP.NET Core 3 記錄錯誤

C#
Smart貓小萌 2023-07-09 17:08:06
我正在嘗試讓 API 服務在 ASP.NET Core 3 中運行并進行日志記錄,但在嘗試從依賴項服務檢索 ILogger 時不斷收到錯誤。我想我已經(jīng)遵循了我能找到的例子,但我不斷得到:“System.InvalidOperationException:‘嘗試激活‘GMT.Beacon.Service.Startup’時,無法解析類型‘Microsoft.Extensions.Logging.ILogger`1[GMT.Beacon.Service.Startup]’的服務?!蔽沂褂媚J模板來啟動項目,因此它通過默認構(gòu)建器設置 Web 主機,根據(jù)文檔應該自動配置日志記錄。此外,我嘗試手動添加提供程序,但遇到相同的錯誤。我覺得我錯過了一些明顯的東西,但無法弄清楚是什么。這是出現(xiàn)錯誤的 Program.cs 類:public class Program {     public static IHostBuilder CreateHostBuilder(string[] args) =>        Host.CreateDefaultBuilder(args)            .ConfigureWebHostDefaults(webBuilder => {                webBuilder.UseStartup<Startup>();            });    public static void Main(string[] args) {        var host = CreateHostBuilder(args).Build();        var logger = host.Services.GetRequiredService<ILogger<Program>>();        logger.LogInformation("Test log entry.");        host.Run();    }}在 Startup.cs 類中,構(gòu)造函數(shù)如下:public Startup(IConfiguration config, IHostEnvironment hosting, ILogger<Startup> logger) {    _hosting = hosting;    _config = config;    _logger = logger;    _logger.LogInformation($"{DateTime.UtcNow:R} - Starting (Environment={_hosting.EnvironmentName}; " + $"InformationalVersion={Assembly.GetEntryAssembly().GetCustomAttribute<AssemblyInformationalVersionAttribute>().InformationalVersion};");}根據(jù)我能找到的文檔,這似乎應該有效,但它會在線拋出上述錯誤:var host = CreateHostBuilder(args).Build();我還嘗試手動配置日志記錄(使用下面的代碼),但返回相同的錯誤。Host.CreateDefaultBuilder(args)    .ConfigureLogging((hostingContext, logging) => {        logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));        logging.AddEventSourceLogger();        logging.AddConsole();        logging.AddDebug();    })    .ConfigureWebHostDefaults(webBuilder => {        webBuilder.UseStartup<Startup>();    });有誰發(fā)現(xiàn)此設置存在問題,或者知道如何在 ASP.NET Core 3 中正確配置日志記錄子系統(tǒng)?
查看完整描述

2 回答

?
MMTTMM

TA貢獻1869條經(jīng)驗 獲得超4個贊

這是 ASP.NET Core 3 中發(fā)生的變化

TLDR:通用 Host 支持啟動構(gòu)造函數(shù)注入的唯一類型是IHostEnvironment、IWebHostEnvironment和IConfiguration。使用 WebHost 的應用程序不受影響。


ILogger<T>可注入Configure,因此您可以從那里訪問它以記錄啟動消息:


public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILogger<Startup> logger)

{

? ? logger.LogInformation(...);


? ? // ...

}


查看完整回答
反對 回復 2023-07-09
?
POPMUISE

TA貢獻1765條經(jīng)驗 獲得超5個贊

在 ASP.NET Core 2.x 中,日志記錄是在主機構(gòu)建器中創(chuàng)建的。這意味著默認情況下可以通過 DI 獲取日志記錄,并且可以將其注入到 Startup 類中:


public class Startup

{

    private readonly ILogger<Startup> _logger;



    public Startup(ILogger<Startup> logger, IConfiguration configuration)

    {

        _logger = logger;

        Configuration = configuration;

    }


}


查看完整回答
反對 回復 2023-07-09
  • 2 回答
  • 0 關(guān)注
  • 197 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號