Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ';无法解析类型为';Microsoft.Extensions.Logging.ILogger`1[Application.Startup]&x27;试图激活';Application.Startup'';_C#_Asp.net Core - Fatal编程技术网

C# ';无法解析类型为';Microsoft.Extensions.Logging.ILogger`1[Application.Startup]&x27;试图激活';Application.Startup'';

C# ';无法解析类型为';Microsoft.Extensions.Logging.ILogger`1[Application.Startup]&x27;试图激活';Application.Startup'';,c#,asp.net-core,C#,Asp.net Core,我有一个ASP.NET Core 3.0应用程序。我得到的错误是 “在尝试激活“Application.Startup”时,无法解析类型为“Microsoft.Extensions.Logging.ILogger`1[Application.Startup]”的服务。” 我知道ILogger不是ASP.NET Core 3.0应用程序中默认注册的。下面是我的Program.cs和Startup.cs代码,仅供参考 public static IHostBuilder CreateHostBuil

我有一个ASP.NET Core 3.0应用程序。我得到的错误是

“在尝试激活“Application.Startup”时,无法解析类型为“Microsoft.Extensions.Logging.ILogger`1[Application.Startup]”的服务。”

我知道ILogger不是ASP.NET Core 3.0应用程序中默认注册的。下面是我的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>();
        });
公共静态IHostBuilder CreateHostBuilder(字符串[]args)=>
Host.CreateDefaultBuilder(args)
.ConfigureLogging(日志=>
{
logging.ClearProviders();
logging.SetMinimumLevel(LogLevel.Trace);
})
.ConfigureWebHostDefaults(webBuilder=>
{
webBuilder.UseStartup();
});
Startup.cs

public void ConfigureServices(IServiceCollection services)
    {
        var serviceProvider = services.BuildServiceProvider();
        var logger = serviceProvider.GetService<ILogger<AnyClass>>();
        services.AddSingleton(typeof(ILogger), logger);
        ...
     }
public void配置服务(IServiceCollection服务)
{
var serviceProvider=services.BuildServiceProvider();
var logger=serviceProvider.GetService();
服务。AddSingleton(类型(ILogger),记录器);
...
}
请任何人都帮我解决这个错误,我在我的情况下做错了什么?

根据在Startup中完成DI容器设置之前写入日志。不支持ConfigureServices方法

您不能执行
var logger=serviceProvider.GetService()由于DI容器尚未配置,因此在该阶段


有关提供的链接的更多信息。

我也尝试对这些行进行注释,但在调试时,它仍然在HostBuilder.Build().Run()行上抛出错误。您通过执行此操作清除了所有提供程序
logging.ClearProviders()并且没有添加任何备份。尝试添加
logging.AddConsole()并查看它的运行情况。此扩展方法可能需要此nuget包。ILOGingBuilder不包含AddConsole()的定义,其中日志记录为ILOGingBuilderAddConsole()在我添加时可用。ConfigureLogging但在本例中仍然存在错误var logger=serviceProvider.GetService();这回答了你的问题吗?没有,正如后面的ASP.NET 3.0链接中所说的,但仍然是相同的错误。该问题答案的一部分与ASP.NET Core 3.0有关。无论如何,为什么要解析记录器以将其注册为单例?清空ConfigureServices中的所有代码