115 lines
4.2 KiB
C#
Raw Permalink Normal View History

2024-12-19 16:07:07 +08:00
using Hangfire;
2025-04-23 14:46:19 +08:00
using HealthChecks.UI.Client;
using JiShe.CollectBus.Common;
2025-02-24 13:47:12 +08:00
using JiShe.CollectBus.Host.Extensions;
2024-12-19 16:07:07 +08:00
using JiShe.CollectBus.Host.HealthChecks;
using JiShe.CollectBus.Host.Swaggers;
using JiShe.CollectBus.IoTDB.Options;
2024-12-19 16:07:07 +08:00
using JiShe.CollectBus.MongoDB;
using Microsoft.AspNetCore.Diagnostics.HealthChecks;
using Swashbuckle.AspNetCore.SwaggerUI;
using Volo.Abp;
using Volo.Abp.AspNetCore.Authentication.JwtBearer;
using Volo.Abp.AspNetCore.Serilog;
using Volo.Abp.Autofac;
using Volo.Abp.BackgroundWorkers.Hangfire;
using Volo.Abp.Caching.StackExchangeRedis;
using Volo.Abp.Modularity;
using Volo.Abp.Swashbuckle;
using Volo.Abp.Timing;
2024-12-19 16:07:07 +08:00
namespace JiShe.CollectBus.Host
{
/// <summary>
///
/// </summary>
[DependsOn(typeof(CollectBusHttpApiModule),
typeof(AbpAutofacModule),
typeof(AbpAspNetCoreAuthenticationJwtBearerModule),
typeof(AbpAspNetCoreSerilogModule),
typeof(AbpSwashbuckleModule),
typeof(AbpTimingModule),
2024-12-19 16:07:07 +08:00
typeof(CollectBusApplicationModule),
typeof(CollectBusMongoDbModule),
2024-12-19 16:07:07 +08:00
typeof(AbpCachingStackExchangeRedisModule),
typeof(AbpBackgroundWorkersHangfireModule)
)]
public partial class CollectBusHostModule : AbpModule
{
/// <summary>
/// ConfigureServices
/// </summary>
/// <param name="context"></param>
public override void ConfigureServices(ServiceConfigurationContext context)
{
var configuration = context.Services.GetConfiguration();
ConfigureCache(context);
ConfigureSwaggerServices(context, configuration);
ConfigureNetwork(context, configuration);
ConfigureJwtAuthentication(context, configuration);
ConfigureHangfire(context);
ConfigureAuditLog(context);
ConfigureCustom(context, configuration);
2025-04-23 14:46:19 +08:00
ConfigureHealthChecks(context, configuration);
Configure<AbpClockOptions>(options => { options.Kind = DateTimeKind.Local; });
Configure<ServerApplicationOptions>(options =>
{
configuration.GetSection(nameof(ServerApplicationOptions)).Bind(options);
});
2024-12-19 16:07:07 +08:00
}
/// <summary>
/// OnApplicationInitialization
/// </summary>
/// <param name="context"></param>
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
var app = context.GetApplicationBuilder();
var configuration = context.GetConfiguration();
var env = context.GetEnvironment();
app.UseCorrelationId();
app.UseStaticFiles();
app.UseRouting();
app.UseCors(CollectBusHostConst.DefaultCorsPolicyName);
app.UseAuthentication();
app.UseAuthorization();
2025-05-20 17:32:20 +08:00
//if (env.IsDevelopment())
//{
2024-12-19 16:07:07 +08:00
app.UseSwagger();
app.UseAbpSwaggerUI(options =>
{
configuration.GetSection("SwaggerConfig").Get<List<SwaggerConfig>>()?.ForEach(group =>
{
options.SwaggerEndpoint($"/swagger/{group.GroupName}/swagger.json", group.Title); //分组显示
});
options.DocExpansion(DocExpansion.None);
options.DefaultModelsExpandDepth(-1);
});
2025-05-20 17:32:20 +08:00
//}
2024-12-19 16:07:07 +08:00
app.UseAuditing();
app.UseAbpSerilogEnrichers();
app.UseUnitOfWork();
2025-03-21 15:41:02 +08:00
app.UseHangfireDashboard("/hangfire", new DashboardOptions
{
IgnoreAntiforgeryToken = true
});
2024-12-19 16:07:07 +08:00
app.UseConfiguredEndpoints(endpoints =>
{
2025-04-23 14:46:19 +08:00
if (!configuration.GetValue<bool>("HealthChecks:IsEnable")) return;
2024-12-19 16:07:07 +08:00
endpoints.MapHealthChecks("/health", new HealthCheckOptions
{
Predicate = _ => true,
ResponseWriter = HealthCheckResponse.Writer
});
2025-04-23 14:46:19 +08:00
endpoints.MapHealthChecksUI(options =>
{
options.UIPath = "/health-ui";
});
2024-12-19 16:07:07 +08:00
});
}
}
}