使用 Oakton 检查我的 net5 核心应用程序的 Lamar 配置并获得空引用,我该如何解决这个问题?

我正在设置此诊断以帮助解决没有调用我的 ValidationBehavior 的中介管道行为问题。以下是用于配置 Lamar、MassTransit 和 Serilog 的主机构建器设置:

 public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .UseLamar((HostBuilderContext,registry) =>
            {
                registry.CheckLamarConfiguration();
            })
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder
                    .ConfigureAppConfiguration(cfgBuilder =>
                    {
                        var settings = cfgBuilder.Build();
                        var connection = settings.getconnectionString("AppConfig1");
                        if (!string.IsnullOrEmpty(connection))
                        {
                            cfgBuilder.AddAzureAppConfiguration(options =>
                            {
                                options.Connect(connection)
                                    .Select(keyFilter: "PhoenixApp:*",labelFilter: "Development")
                                    .UseFeatureflags(featureflagOptions =>
                                    {
                                        featureflagOptions.CacheExpirationInterval = TimeSpan.FromMinutes(30);
                                    })
                                    .ConfigureRefresh(refresh =>
                                    {
                                        refresh.Register("PhoenixApp:Sentinel",refreshAll: true)
                                            .SetCacheExpiration(new TimeSpan(0,30,0));
                                    })
                                    .ConfigureKeyVault(kv => { kv.SetCredential(new DefaultAzureCredential()); });
                            });
                        }
                    })
                    .ConfigureServices((context,services) =>
                    {
                        services.TryAddSingleton(KebabCaseEndpointNameFormatter.Instance);
                        services.AddMassTransit(cfg =>
                        {
                            cfg.UsingRabbitMq((context,cfg) => { cfg.ConfigureEndpoints(context); });
                            cfg.AddRequestClient<ISubmitOrder>();
                            cfg.AddRequestClient<ICheckOrder>();
                            cfg.AddSagaStateMachine<OrderStateMachine,OrderState>()
                                .RedisRepository();
                        });
                        services.AddMassTransitHostedService();
                    })
                    .ConfigureLogging(loggingConfiguration =>
                        loggingConfiguration
                            .ClearProviders())
                    .UseSerilog((hostingContext,loggerConfiguration) =>
                        loggerConfiguration
                            .ReadFrom.Configuration(hostingContext.Configuration,"PhoenixApp:Serilog")
                            .MinimumLevel.Override("microsoft",LogEventLevel.Warning))
                    .UseDefaultServiceProvider((context,options) =>
                    {
                        options.ValidateScopes = context.HostingEnvironment.IsDevelopment();
                        options.ValidateonBuild = true;
                    })
                    .UseStartup<Startup>();
            });

我正在使用以下命令调用 Oakton 诊断程序:

dotnet run -- lamar-services

结果如下:

使用 Oakton 检查我的 net5 核心应用程序的 Lamar 配置并获得空引用,我该如何解决这个问题?

这是我正在使用的软件包列表:

 <ItemGroup>
<PackageReference Include="Ardalis.GuardClauses" Version="3.2.0" />
<PackageReference Include="AutoMapper.Extensions.microsoft.DependencyInjection" Version="8.1.1" />
<PackageReference Include="Azure.Identity" Version="1.3.0" />
<PackageReference Include="FluentValidation.AspNetCore" Version="10.1.0" />
<PackageReference Include="FluentValidation.DependencyInjectionExtensions" Version="10.1.0" />
<PackageReference Include="Lamar" Version="5.0.3" />
<PackageReference Include="Lamar.Diagnostics" Version="3.0.2" />
<PackageReference Include="Lamar.microsoft.DependencyInjection" Version="5.0.3" />
<PackageReference Include="MassTransit" Version="7.1.7" />
<PackageReference Include="MassTransit.Analyzers" Version="7.1.7" />
<PackageReference Include="MassTransit.AspNetCore" Version="7.1.7" />
<PackageReference Include="MassTransit.Extensions.DependencyInjection" Version="7.1.7" />
<PackageReference Include="MassTransit.RabbitMQ" Version="7.1.7" />
<PackageReference Include="MassTransit.Redis" Version="7.1.7" />
<PackageReference Include="MediatR" Version="9.0.0" />
<PackageReference Include="MediatR.Extensions.microsoft.DependencyInjection" Version="9.0.0" />
<PackageReference Include="microsoft.ApplicationInsights.DependencyCollector" Version="2.17.0" />
<PackageReference Include="microsoft.AspNetCore.Authentication.JwtBearer" Version="5.0.4" />
<PackageReference Include="microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="5.0.4" />
<PackageReference Include="microsoft.Azure.AppConfiguration.AspNetCore" Version="4.1.0" />
<PackageReference Include="microsoft.EntityFrameworkCore.SqlServer" Version="3.1.13" />
<PackageReference Include="microsoft.Extensions.Logging.ApplicationInsights" Version="2.17.0" />
<PackageReference Include="Oakton.AspNetCore" Version="3.0.0" />
<PackageReference Include="Scrutor.AspNetCore" Version="3.3.0" />
<PackageReference Include="Serilog" Version="2.10.1-dev-01285" />
<PackageReference Include="Serilog.AspNetCore" Version="4.0.1-dev-00219" />
<PackageReference Include="Serilog.Enrichers.Environment" Version="2.1.3-dev-00759" />
<PackageReference Include="Serilog.Enrichers.Thread" Version="3.1.0" />
<PackageReference Include="Serilog.Expressions" Version="1.1.1" />
<PackageReference Include="Serilog.Extensions.Hosting" Version="4.1.2" />
<PackageReference Include="Serilog.Settings.Configuration" Version="3.2.0-dev-00264" />
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
<PackageReference Include="Serilog.Sinks.Graylog" Version="2.2.2" />
<PackageReference Include="Serilog.Sinks.Seq" Version="5.0.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="5.6.3" />
<PackageReference Include="Swashbuckle.AspNetCore.Filters" Version="7.0.2" />

不知道如何调试 Oakton——它似乎没有找到合适的 Lamar.Diagnostics 包。

SODOU619157158 回答:使用 Oakton 检查我的 net5 核心应用程序的 Lamar 配置并获得空引用,我该如何解决这个问题?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/268562.html

大家都在问