«Не удалось разрешить службу для типа« Microsoft.Extensions.Logging.ILogger`1 [Application.Startup] »при попытке активировать« Application.Startup ». ' - PullRequest
0 голосов
/ 21 марта 2020

У меня есть ASP. NET Core 3.0 приложение. Я получаю сообщение об ошибке:

'Не удается разрешить службу для типа' Microsoft.Extensions.Logging.ILogger`1 [Application.Startup] 'при попытке активировать' Application.Startup '.'

Я знаю, что ILogger не зарегистрирован по умолчанию в ASP. NET Core 3.0 Application. Ниже приведен мой код для Program.cs и Startup.cs для справки

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureLogging(logging =>
          {
            logging.ClearProviders();
            logging.SetMinimumLevel(LogLevel.Trace);
          })
        .ConfigureWebHostDefaults(webBuilder =>
        {
          webBuilder.UseStartup<Startup>();
        });

Startup.cs

public void ConfigureServices(IServiceCollection services)
    {
        var serviceProvider = services.BuildServiceProvider();
        var logger = serviceProvider.GetService<ILogger<AnyClass>>();
        services.AddSingleton(typeof(ILogger), logger);
        ...
     }

Пожалуйста, кто-нибудь может мне помочь с этой ошибкой, Что я делаю неправильно мой случай?

1 Ответ

0 голосов
/ 21 марта 2020

Согласно https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-3.1#create -logs-in-the-startup-class запись журналов до завершения настройки контейнера DI в методе Startup.ConfigureServices не поддерживается.

You не может сделать var logger = serviceProvider.GetService<ILogger<AnyClass>>();, так как контейнер DI еще не настроен, на этом этапе.

Дополнительная информация по предоставленной ссылке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...