1

I am setting up this diagnostic to assist in Mediator Pipeline Behavior issue where my ValidationBehavior is not being called. Below is the hostbuilder setup which is used to configure Lamar, MassTransit, and 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>();
            });

I am invoking Oakton diagnostics using this command:

dotnet run -- lamar-services

Which results in the following output: enter image description here

This is the list of packages I am using:

 <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" />

Not sure how to debug Oakton -- it does not appear to be finding the proper Lamar.Diagnostics package.

phitch
  • 115
  • 9

0 Answers0