【问题标题】:The type initializer logger extension throw an exception类型初始化记录器扩展抛出异常
【发布时间】:2021-09-10 15:10:28
【问题描述】:

我正在制作一个 .NET Core 应用程序,我想启动一个应用程序,但它在这行代码中显示:

app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Index}/{id?}");
                endpoints.MapRazorPages();
            });

... 它说这个错误:

System.TypeInitializationException: 'The type initializer for 'Microsoft.AspNetCore.Mvc.MvcCoreLoggerExtensions' threw an exception.'

... 这是新事物,我以前在启动应用程序时从未见过。我该如何解决?

...内部异常是:

Method not found: 'System.Action`4<Microsoft.Extensions.Logging.ILogger,!!0,!!1,System.Exception> Microsoft.Extensions.Logging.LoggerMessage.Define(Microsoft.Extensions.Logging.LogLevel, Microsoft.Extensions.Logging.EventId, System.String, Boolean)'.

Main.cs

 public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });
    }

...

.NET Core 6.0 是最新版本...身份已包含在应用程序中。

【问题讨论】:

标签: c# exception .net-core


【解决方案1】:

我遇到了同样的问题。为了实验,我创建了一个新项目,并在其中添加了最新版本的 Microsoft.Extensions.Logging(当前为 6.0.0-preview.7.21377.19)。该项目崩溃并出现与您相同的错误。 问题是LoggerMessage.Define 中没有四参数重载。将包降级到版本 6.0.0-preview.6.21352.12 对我有帮助。

【讨论】:

    猜你喜欢
    • 2011-04-16
    • 1970-01-01
    • 1970-01-01
    • 2018-04-05
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    相关资源
    最近更新 更多