using Exceptionless; try { var configuration = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("Serilog.json") .AddJsonFile($"Serilog.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", true) .Build(); var MyAllowSpecificOrigins = "_myAllowSpecificOrigins"; var builder = WebApplication.CreateBuilder(args); var logger = new LoggerConfiguration() .ReadFrom.Configuration(configuration) .WriteTo.Exceptionless(builder.Configuration.GetValue("Exceptionless:ApiKey"), builder.Configuration.GetValue("Exceptionless:ServerUrl"), new string[] { "sa-center" }) .CreateLogger(); Log.Logger = logger; builder.Services.AddLogging(logging => { logging.ClearProviders(); logging.AddSerilog(logger); }); builder.Services.AddCors(option => { option.AddPolicy(MyAllowSpecificOrigins, policy => { policy.SetIsOriginAllowed(_ => true) .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials(); }); }); LogHelper.Info("Starting SA WebApi"); builder.Services.AddExceptionless(builder.Configuration); builder.Services.AddSingleton(new InitConfiguration(builder.Configuration)); builder.Services.AddQuartzJob(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddHttpApi(o => { o.HttpHost = new Uri(builder.Configuration.GetSection("SystemConfig:ForwardingUrl").Get()); o.UseLogging = true; }); builder.Services.AddHttpApi(o => { o.HttpHost = new Uri(builder.Configuration.GetSection("SystemConfig:ZXDUrl").Get()); o.UseLogging = true; }); builder.Services.AddControllers(); // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); var app = builder.Build(); app.UseCors(MyAllowSpecificOrigins); // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); } app.UseExceptionless(); app.UseQuartzJob(); app.UseHttpsRedirection(); app.UseMiddleware(); app.UseAuthorization(); app.MapControllers(); app.UseHttpLogging(); app.Run(); } catch (Exception ex) { Log.Fatal(ex, "Host terminated unexpectedly"); } finally { Log.CloseAndFlush(); }