using AutoDispathingWork; using AutoDispathingWork.Utils; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Diagnostics; using Npgsql; using WorkerService1; using WorkerService1.Dto.Configuration; using WorkerService1.Services; var builder = WebApplication.CreateBuilder(args); builder.Services .AddControllers(); builder.Services .AddEndpointsApiExplorer(); var config = new ConfigurationManager() .AddJsonFile("appsettings.json", false, true) .Build(); builder.Services.AddCors(x => { x.AddPolicy("AllowAllOrigin", builder => { builder .SetIsOriginAllowed(_ => true) .AllowAnyMethod() .AllowAnyHeader(); }); }); var connectionString = builder.Configuration.GetConnectionString("DefaultConnection"); builder.Services.AddDbContextPool(x => { var dataSourceBuilder = new NpgsqlDataSourceBuilder(connectionString); // 启用动态 JSON 序列化 dataSourceBuilder.EnableDynamicJson(); var dataSource = dataSourceBuilder.Build(); x.UseNpgsql(dataSource) .UseLoggerFactory(new LoggerFactory()) .LogTo(Console.WriteLine, LogLevel.Information); x.ConfigureWarnings(warnings => warnings.Ignore(CoreEventId.ManyServiceProvidersCreatedWarning)); } ); builder.Services.AddSwaggerGen(); builder.Services.AddSingleton(config); builder.Services.Configure(config.GetSection("ClientOptions")); builder.Services.AddSingleton(); builder.Services.AddHttpClient("Default") .AddHttpMessageHandler(); builder.Services.AddMemoryCache(); builder.Services.AddLogging(); // builder.Services.AddMvcCore(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); // #if !DEBUG builder.Services.AddHostedService(); builder.Services.AddHostedService(); // #endif var app = builder.Build(); StaticServiceProvider.SetServiceProvider(app.Services); app.UseCors("AllowAllOrigin"); #if DEBUG app.UseSwagger(); app.UseSwaggerUI(); app.Services.GetService(); #endif app.UseDefaultFiles(); app.UseStaticFiles(); app.MapControllers(); app.Urls.Add("http://*:8080"); app.Run();