From 33b305fe0192ff17d70c2179238ebf02fd151a77 Mon Sep 17 00:00:00 2001 From: cKey <35512826+colinin@users.noreply.github.com> Date: Fri, 21 Jan 2022 17:45:48 +0800 Subject: [PATCH] fix(data-seeder): run the data seeder in a background service --- .../BackendAdminHttpApiHostModule.Seeder.cs | 17 +++++---------- .../BackendAdminHttpApiHostModule.cs | 3 +-- .../BackendAdminDataSeederWorker.cs | 21 +++++++++++++++++++ .../LocalizationManagementDataSeederWorker.cs | 21 +++++++++++++++++++ ...ationManagementHttpApiHostModule.Seeder.cs | 15 +++++-------- ...LocalizationManagementHttpApiHostModule.cs | 3 +-- .../PlatformManagementDataSeederWorker.cs | 21 +++++++++++++++++++ ...tformManagementHttpApiHostModule.Seeder.cs | 15 +++++-------- .../PlatformManagementHttpApiHostModule.cs | 3 +-- .../RealtimeMessageDataSeederWorker.cs | 21 +++++++++++++++++++ ...RealtimeMessageHttpApiHostModule.Seeder.cs | 13 ++++-------- .../RealtimeMessageHttpApiHostModule.cs | 3 +-- .../WorkflowManagementDataSeederWorker.cs | 21 +++++++++++++++++++ ...wManagementHttpApiHostModule.DataSeeder.cs | 15 +++++-------- .../WorkflowManagementHttpApiHostModule.cs | 3 +-- .../IdentityServerDataSeederWorker.cs | 21 +++++++++++++++++++ .../IdentityServerModule.Seeder.cs | 17 +++++---------- .../IdentityServerModule.cs | 3 +-- 18 files changed, 161 insertions(+), 75 deletions(-) create mode 100644 aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/DataSeeder/BackendAdminDataSeederWorker.cs create mode 100644 aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/DataSeeder/LocalizationManagementDataSeederWorker.cs create mode 100644 aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/DataSeeder/PlatformManagementDataSeederWorker.cs create mode 100644 aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/DataSeeder/RealtimeMessageDataSeederWorker.cs create mode 100644 aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/DataSeeder/WorkflowManagementDataSeederWorker.cs create mode 100644 aspnet-core/services/LY.MicroService.identityServer/DataSeeder/IdentityServerDataSeederWorker.cs diff --git a/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/BackendAdminHttpApiHostModule.Seeder.cs b/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/BackendAdminHttpApiHostModule.Seeder.cs index 4741da403..8d285efa6 100644 --- a/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/BackendAdminHttpApiHostModule.Seeder.cs +++ b/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/BackendAdminHttpApiHostModule.Seeder.cs @@ -1,22 +1,15 @@ -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using Volo.Abp; -using Volo.Abp.Data; -using Volo.Abp.Threading; +using LY.MicroService.BackendAdmin.DataSeeder; +using Microsoft.Extensions.DependencyInjection; namespace LY.MicroService.BackendAdmin; public partial class BackendAdminHttpApiHostModule { - private static void SeedData(ApplicationInitializationContext context) + private static void ConfigureSeedWorker(IServiceCollection services, bool isDevelopment = false) { - if (context.GetEnvironment().IsDevelopment()) + if (isDevelopment) { - AsyncHelper.RunSync(async () => - { - using var scope = context.ServiceProvider.CreateScope(); - await scope.ServiceProvider.GetRequiredService().SeedAsync(); - }); + services.AddHostedService(); } } } diff --git a/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/BackendAdminHttpApiHostModule.cs b/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/BackendAdminHttpApiHostModule.cs index 058a83677..b8ef7a792 100644 --- a/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/BackendAdminHttpApiHostModule.cs +++ b/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/BackendAdminHttpApiHostModule.cs @@ -105,6 +105,7 @@ public partial class BackendAdminHttpApiHostModule : AbpModule ConfigureSwagger(context.Services); ConfigureMultiTenancy(configuration); ConfigureCors(context.Services, configuration); + ConfigureSeedWorker(context.Services, hostingEnvironment.IsDevelopment()); ConfigureSecurity(context.Services, configuration, hostingEnvironment.IsDevelopment()); } @@ -141,7 +142,5 @@ public partial class BackendAdminHttpApiHostModule : AbpModule app.UseAbpSerilogEnrichers(); // 路由 app.UseConfiguredEndpoints(); - - SeedData(context); } } diff --git a/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/DataSeeder/BackendAdminDataSeederWorker.cs b/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/DataSeeder/BackendAdminDataSeederWorker.cs new file mode 100644 index 000000000..4fedd9192 --- /dev/null +++ b/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/DataSeeder/BackendAdminDataSeederWorker.cs @@ -0,0 +1,21 @@ +using Microsoft.Extensions.Hosting; +using System.Threading; +using System.Threading.Tasks; +using Volo.Abp.Data; + +namespace LY.MicroService.BackendAdmin.DataSeeder; + +public class BackendAdminDataSeederWorker : BackgroundService +{ + protected IDataSeeder DataSeeder { get; } + + public BackendAdminDataSeederWorker(IDataSeeder dataSeeder) + { + DataSeeder = dataSeeder; + } + + protected async override Task ExecuteAsync(CancellationToken stoppingToken) + { + await DataSeeder.SeedAsync(); + } +} diff --git a/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/DataSeeder/LocalizationManagementDataSeederWorker.cs b/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/DataSeeder/LocalizationManagementDataSeederWorker.cs new file mode 100644 index 000000000..6ebe58f56 --- /dev/null +++ b/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/DataSeeder/LocalizationManagementDataSeederWorker.cs @@ -0,0 +1,21 @@ +using Microsoft.Extensions.Hosting; +using System.Threading; +using System.Threading.Tasks; +using Volo.Abp.Data; + +namespace LY.MicroService.LocalizationManagement.DataSeeder; + +public class LocalizationManagementDataSeederWorker : BackgroundService +{ + protected IDataSeeder DataSeeder { get; } + + public LocalizationManagementDataSeederWorker(IDataSeeder dataSeeder) + { + DataSeeder = dataSeeder; + } + + protected async override Task ExecuteAsync(CancellationToken stoppingToken) + { + await DataSeeder.SeedAsync(); + } +} diff --git a/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/LocalizationManagementHttpApiHostModule.Seeder.cs b/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/LocalizationManagementHttpApiHostModule.Seeder.cs index 3d6da7795..ea424b40c 100644 --- a/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/LocalizationManagementHttpApiHostModule.Seeder.cs +++ b/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/LocalizationManagementHttpApiHostModule.Seeder.cs @@ -1,20 +1,15 @@ -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using Volo.Abp; -using Volo.Abp.Data; -using Volo.Abp.Threading; +using LY.MicroService.LocalizationManagement.DataSeeder; +using Microsoft.Extensions.DependencyInjection; namespace LY.MicroService.LocalizationManagement; public partial class LocalizationManagementHttpApiHostModule { - private void SeedData(ApplicationInitializationContext context) + private static void ConfigureSeedWorker(IServiceCollection services, bool isDevelopment = false) { - if (context.GetEnvironment().IsDevelopment()) + if (isDevelopment) { - AsyncHelper.RunSync(async () => - await context.ServiceProvider.GetRequiredService() - .SeedAsync()); + services.AddHostedService(); } } } diff --git a/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/LocalizationManagementHttpApiHostModule.cs b/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/LocalizationManagementHttpApiHostModule.cs index bdc6cd87f..7a0896862 100644 --- a/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/LocalizationManagementHttpApiHostModule.cs +++ b/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/LocalizationManagementHttpApiHostModule.cs @@ -74,6 +74,7 @@ namespace LY.MicroService.LocalizationManagement ConfigureSwagger(context.Services); ConfigureMultiTenancy(configuration); ConfigureCors(context.Services, configuration); + ConfigureSeedWorker(context.Services, hostingEnvironment.IsDevelopment()); ConfigureSecurity(context.Services, configuration, hostingEnvironment.IsDevelopment()); } @@ -110,8 +111,6 @@ namespace LY.MicroService.LocalizationManagement app.UseAbpSerilogEnrichers(); // 路由 app.UseConfiguredEndpoints(); - - SeedData(context); } } } diff --git a/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/DataSeeder/PlatformManagementDataSeederWorker.cs b/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/DataSeeder/PlatformManagementDataSeederWorker.cs new file mode 100644 index 000000000..35b53f1f9 --- /dev/null +++ b/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/DataSeeder/PlatformManagementDataSeederWorker.cs @@ -0,0 +1,21 @@ +using Microsoft.Extensions.Hosting; +using System.Threading; +using System.Threading.Tasks; +using Volo.Abp.Data; + +namespace LY.MicroService.PlatformManagement.DataSeeder; + +public class PlatformManagementDataSeederWorker : BackgroundService +{ + protected IDataSeeder DataSeeder { get; } + + public PlatformManagementDataSeederWorker(IDataSeeder dataSeeder) + { + DataSeeder = dataSeeder; + } + + protected async override Task ExecuteAsync(CancellationToken stoppingToken) + { + await DataSeeder.SeedAsync(); + } +} diff --git a/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.Seeder.cs b/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.Seeder.cs index fc5d0624a..b33a3b4fb 100644 --- a/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.Seeder.cs +++ b/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.Seeder.cs @@ -1,20 +1,15 @@ -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using Volo.Abp; -using Volo.Abp.Data; -using Volo.Abp.Threading; +using LY.MicroService.PlatformManagement.DataSeeder; +using Microsoft.Extensions.DependencyInjection; namespace LY.MicroService.PlatformManagement; public partial class PlatformManagementHttpApiHostModule { - private void SeedData(ApplicationInitializationContext context) + private static void ConfigureSeedWorker(IServiceCollection services, bool isDevelopment = false) { - if (context.GetEnvironment().IsDevelopment()) + if (isDevelopment) { - AsyncHelper.RunSync(async () => - await context.ServiceProvider.GetRequiredService() - .SeedAsync()); + services.AddHostedService(); } } } diff --git a/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.cs b/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.cs index b7e4e1bbb..0c9a3753b 100644 --- a/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.cs +++ b/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.cs @@ -103,6 +103,7 @@ public partial class PlatformManagementHttpApiHostModule : AbpModule ConfigureSwagger(context.Services); ConfigureMultiTenancy(configuration); ConfigureCors(context.Services, configuration); + ConfigureSeedWorker(context.Services, hostingEnvironment.IsDevelopment()); ConfigureSecurity(context.Services, configuration, hostingEnvironment.IsDevelopment()); } @@ -141,7 +142,5 @@ public partial class PlatformManagementHttpApiHostModule : AbpModule app.UseAbpSerilogEnrichers(); // 路由 app.UseConfiguredEndpoints(); - - SeedData(context); } } diff --git a/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/DataSeeder/RealtimeMessageDataSeederWorker.cs b/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/DataSeeder/RealtimeMessageDataSeederWorker.cs new file mode 100644 index 000000000..02d78a1de --- /dev/null +++ b/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/DataSeeder/RealtimeMessageDataSeederWorker.cs @@ -0,0 +1,21 @@ +using Microsoft.Extensions.Hosting; +using System.Threading; +using System.Threading.Tasks; +using Volo.Abp.Data; + +namespace LY.MicroService.RealtimeMessage.DataSeeder; + +public class RealtimeMessageDataSeederWorker : BackgroundService +{ + protected IDataSeeder DataSeeder { get; } + + public RealtimeMessageDataSeederWorker(IDataSeeder dataSeeder) + { + DataSeeder = dataSeeder; + } + + protected async override Task ExecuteAsync(CancellationToken stoppingToken) + { + await DataSeeder.SeedAsync(); + } +} diff --git a/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/RealtimeMessageHttpApiHostModule.Seeder.cs b/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/RealtimeMessageHttpApiHostModule.Seeder.cs index 4e9efbd09..721b01397 100644 --- a/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/RealtimeMessageHttpApiHostModule.Seeder.cs +++ b/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/RealtimeMessageHttpApiHostModule.Seeder.cs @@ -1,20 +1,15 @@ -using LINGYUN.Abp.MessageService; +using LY.MicroService.RealtimeMessage.DataSeeder; using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using Volo.Abp; -using Volo.Abp.Threading; namespace LY.MicroService.RealtimeMessage; public partial class RealtimeMessageHttpApiHostModule { - private void SeedData(ApplicationInitializationContext context) + private static void ConfigureSeedWorker(IServiceCollection services, bool isDevelopment = false) { - if (context.GetEnvironment().IsDevelopment()) + if (isDevelopment) { - AsyncHelper.RunSync(async () => - await context.ServiceProvider.GetRequiredService() - .SeedAsync()); + services.AddHostedService(); } } } diff --git a/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/RealtimeMessageHttpApiHostModule.cs b/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/RealtimeMessageHttpApiHostModule.cs index 9c1725423..c0746caeb 100644 --- a/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/RealtimeMessageHttpApiHostModule.cs +++ b/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/RealtimeMessageHttpApiHostModule.cs @@ -100,6 +100,7 @@ namespace LY.MicroService.RealtimeMessage ConfigureMultiTenancy(configuration); ConfigureHangfireServer(context.Services); ConfigureCors(context.Services, configuration); + ConfigureSeedWorker(context.Services, hostingEnvironment.IsDevelopment()); ConfigureSecurity(context.Services, configuration, hostingEnvironment.IsDevelopment()); } @@ -140,8 +141,6 @@ namespace LY.MicroService.RealtimeMessage app.UseHangfireDashboard(); // 路由 app.UseConfiguredEndpoints(); - - SeedData(context); } } } diff --git a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/DataSeeder/WorkflowManagementDataSeederWorker.cs b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/DataSeeder/WorkflowManagementDataSeederWorker.cs new file mode 100644 index 000000000..e54ffe593 --- /dev/null +++ b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/DataSeeder/WorkflowManagementDataSeederWorker.cs @@ -0,0 +1,21 @@ +using Microsoft.Extensions.Hosting; +using System.Threading; +using System.Threading.Tasks; +using Volo.Abp.Data; + +namespace LY.MicroService.WorkflowManagement.DataSeeder; + +public class WorkflowManagementDataSeederWorker : BackgroundService +{ + protected IDataSeeder DataSeeder { get; } + + public WorkflowManagementDataSeederWorker(IDataSeeder dataSeeder) + { + DataSeeder = dataSeeder; + } + + protected async override Task ExecuteAsync(CancellationToken stoppingToken) + { + await DataSeeder.SeedAsync(); + } +} diff --git a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.DataSeeder.cs b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.DataSeeder.cs index d9b9f2ac6..b27c0997b 100644 --- a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.DataSeeder.cs +++ b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.DataSeeder.cs @@ -1,20 +1,15 @@ -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using Volo.Abp; -using Volo.Abp.Data; -using Volo.Abp.Threading; +using LY.MicroService.WorkflowManagement.DataSeeder; +using Microsoft.Extensions.DependencyInjection; namespace LY.MicroService.WorkflowManagement; public partial class WorkflowManagementHttpApiHostModule { - private void SeedData(ApplicationInitializationContext context) + private static void ConfigureSeedWorker(IServiceCollection services, bool isDevelopment = false) { - if (context.GetEnvironment().IsDevelopment()) + if (isDevelopment) { - AsyncHelper.RunSync(async () => - await context.ServiceProvider.GetRequiredService() - .SeedAsync()); + services.AddHostedService(); } } } diff --git a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.cs b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.cs index 647c6db9d..bd6c82995 100644 --- a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.cs +++ b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.cs @@ -92,6 +92,7 @@ public partial class WorkflowManagementHttpApiHostModule : AbpModule ConfigureSwagger(context.Services); ConfigureBlobStoring(context.Services, configuration); ConfigureDistributedLock(context.Services, configuration); + ConfigureSeedWorker(context.Services, hostingEnvironment.IsDevelopment()); ConfigureSecurity(context.Services, configuration, hostingEnvironment.IsDevelopment()); // 开发取消权限检查 @@ -125,7 +126,5 @@ public partial class WorkflowManagementHttpApiHostModule : AbpModule app.UseAuditing(); app.UseAbpSerilogEnrichers(); app.UseConfiguredEndpoints(); - - SeedData(context); } } diff --git a/aspnet-core/services/LY.MicroService.identityServer/DataSeeder/IdentityServerDataSeederWorker.cs b/aspnet-core/services/LY.MicroService.identityServer/DataSeeder/IdentityServerDataSeederWorker.cs new file mode 100644 index 000000000..b6dcb6f75 --- /dev/null +++ b/aspnet-core/services/LY.MicroService.identityServer/DataSeeder/IdentityServerDataSeederWorker.cs @@ -0,0 +1,21 @@ +using Microsoft.Extensions.Hosting; +using System.Threading; +using System.Threading.Tasks; +using Volo.Abp.Data; + +namespace LY.MicroService.IdentityServer.DataSeeder; + +public class IdentityServerDataSeederWorker : BackgroundService +{ + protected IDataSeeder DataSeeder { get; } + + public IdentityServerDataSeederWorker(IDataSeeder dataSeeder) + { + DataSeeder = dataSeeder; + } + + protected async override Task ExecuteAsync(CancellationToken stoppingToken) + { + await DataSeeder.SeedAsync(); + } +} diff --git a/aspnet-core/services/LY.MicroService.identityServer/IdentityServerModule.Seeder.cs b/aspnet-core/services/LY.MicroService.identityServer/IdentityServerModule.Seeder.cs index 455e2057c..98d35920b 100644 --- a/aspnet-core/services/LY.MicroService.identityServer/IdentityServerModule.Seeder.cs +++ b/aspnet-core/services/LY.MicroService.identityServer/IdentityServerModule.Seeder.cs @@ -1,22 +1,15 @@ -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using Volo.Abp; -using Volo.Abp.Data; -using Volo.Abp.Threading; +using LY.MicroService.IdentityServer.DataSeeder; +using Microsoft.Extensions.DependencyInjection; namespace LY.MicroService.IdentityServer; public partial class IdentityServerModule { - private void SeedData(ApplicationInitializationContext context) + private static void ConfigureSeedWorker(IServiceCollection services, bool isDevelopment = false) { - if (context.GetEnvironment().IsDevelopment()) + if (isDevelopment) { - AsyncHelper.RunSync(async () => - { - using var scope = context.ServiceProvider.CreateScope(); - await scope.ServiceProvider.GetRequiredService().SeedAsync(); - }); + services.AddHostedService(); } } } diff --git a/aspnet-core/services/LY.MicroService.identityServer/IdentityServerModule.cs b/aspnet-core/services/LY.MicroService.identityServer/IdentityServerModule.cs index f874a48f0..b433dce5a 100644 --- a/aspnet-core/services/LY.MicroService.identityServer/IdentityServerModule.cs +++ b/aspnet-core/services/LY.MicroService.identityServer/IdentityServerModule.cs @@ -96,6 +96,7 @@ public partial class IdentityServerModule : AbpModule ConfigureUrls(configuration); ConfigureMultiTenancy(configuration); ConfigureCors(context.Services, configuration); + ConfigureSeedWorker(context.Services, hostingEnvironment.IsDevelopment()); ConfigureSecurity(context.Services, configuration, hostingEnvironment.IsDevelopment()); } @@ -130,7 +131,5 @@ public partial class IdentityServerModule : AbpModule app.UseAuditing(); app.UseAbpSerilogEnrichers(); app.UseConfiguredEndpoints(); - - SeedData(context); } }