diff --git a/KonSoft.sln b/KonSoft.sln index ba13866..00fccd6 100644 --- a/KonSoft.sln +++ b/KonSoft.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 -VisualStudioVersion = 17.14.36414.22 d17.14 +VisualStudioVersion = 17.14.36414.22 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "applications", "applications", "{02EA681E-C7D8-13C7-8484-4AC65E1B71E8}" EndProject @@ -49,8 +49,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E67FA5C3-132 EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{1C06151A-45F0-4D48-8303-3D4CBE9517F7}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Shared", "shared\KonSoft.Shared\KonSoft.Shared.csproj", "{345B5CDA-DC77-4956-BF96-80707EC1B5B2}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Admin.Application", "modules\admin\src\KonSoft.Admin.Application\KonSoft.Admin.Application.csproj", "{9D9D979A-AFC7-F9D0-2D23-8809E83F9EF9}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Admin.Application.Contracts", "modules\admin\src\KonSoft.Admin.Application.Contracts\KonSoft.Admin.Application.Contracts.csproj", "{9F68B0E2-0B1D-E0E8-1BE7-079F693A4643}" @@ -185,6 +183,16 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Report.HttpApi.Host EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.TenantManagement.HttpApi.Host", "microservices\KonSoft.TenantManagement.HttpApi.Host\KonSoft.TenantManagement.HttpApi.Host.csproj", "{3641CA05-99C5-2245-C663-6CE00730E87C}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Shared.Localization", "shared\KonSoft.Shared.Localization\KonSoft.Shared.Localization.csproj", "{A773C53C-F145-043A-7F55-79ABDB11893B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Shared.Hosting", "shared\KonSoft.Shared.Hosting\KonSoft.Shared.Hosting.csproj", "{2DBCE12E-4A5F-4AB9-82BB-4BDDE48AABBF}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Shared.Hosting.AspNetCore", "shared\KonSoft.Shared.Hosting.AspNetCore\KonSoft.Shared.Hosting.AspNetCore.csproj", "{8CA6B487-3AAF-4E77-ACE0-01D878DE4836}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Shared.Hosting.Gateways", "shared\KonSoft.Shared.Hosting.Gateways\KonSoft.Shared.Hosting.Gateways.csproj", "{BBB1A129-9ED7-4F08-B710-B6C287197BFB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Shared.Hosting.Microservices", "shared\KonSoft.Shared.Hosting.Microservices\KonSoft.Shared.Hosting.Microservices.csproj", "{ADF28580-F8A0-4495-96D6-736C6C7CF3FF}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -203,10 +211,6 @@ Global {AEBC7053-743F-4F80-BD10-8ED6A8A7B3EE}.Debug|Any CPU.Build.0 = Debug|Any CPU {AEBC7053-743F-4F80-BD10-8ED6A8A7B3EE}.Release|Any CPU.ActiveCfg = Release|Any CPU {AEBC7053-743F-4F80-BD10-8ED6A8A7B3EE}.Release|Any CPU.Build.0 = Release|Any CPU - {345B5CDA-DC77-4956-BF96-80707EC1B5B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {345B5CDA-DC77-4956-BF96-80707EC1B5B2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {345B5CDA-DC77-4956-BF96-80707EC1B5B2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {345B5CDA-DC77-4956-BF96-80707EC1B5B2}.Release|Any CPU.Build.0 = Release|Any CPU {9D9D979A-AFC7-F9D0-2D23-8809E83F9EF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9D9D979A-AFC7-F9D0-2D23-8809E83F9EF9}.Debug|Any CPU.Build.0 = Debug|Any CPU {9D9D979A-AFC7-F9D0-2D23-8809E83F9EF9}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -475,6 +479,26 @@ Global {3641CA05-99C5-2245-C663-6CE00730E87C}.Debug|Any CPU.Build.0 = Debug|Any CPU {3641CA05-99C5-2245-C663-6CE00730E87C}.Release|Any CPU.ActiveCfg = Release|Any CPU {3641CA05-99C5-2245-C663-6CE00730E87C}.Release|Any CPU.Build.0 = Release|Any CPU + {A773C53C-F145-043A-7F55-79ABDB11893B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A773C53C-F145-043A-7F55-79ABDB11893B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A773C53C-F145-043A-7F55-79ABDB11893B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A773C53C-F145-043A-7F55-79ABDB11893B}.Release|Any CPU.Build.0 = Release|Any CPU + {2DBCE12E-4A5F-4AB9-82BB-4BDDE48AABBF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2DBCE12E-4A5F-4AB9-82BB-4BDDE48AABBF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2DBCE12E-4A5F-4AB9-82BB-4BDDE48AABBF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2DBCE12E-4A5F-4AB9-82BB-4BDDE48AABBF}.Release|Any CPU.Build.0 = Release|Any CPU + {8CA6B487-3AAF-4E77-ACE0-01D878DE4836}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8CA6B487-3AAF-4E77-ACE0-01D878DE4836}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8CA6B487-3AAF-4E77-ACE0-01D878DE4836}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8CA6B487-3AAF-4E77-ACE0-01D878DE4836}.Release|Any CPU.Build.0 = Release|Any CPU + {BBB1A129-9ED7-4F08-B710-B6C287197BFB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BBB1A129-9ED7-4F08-B710-B6C287197BFB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BBB1A129-9ED7-4F08-B710-B6C287197BFB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BBB1A129-9ED7-4F08-B710-B6C287197BFB}.Release|Any CPU.Build.0 = Release|Any CPU + {ADF28580-F8A0-4495-96D6-736C6C7CF3FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ADF28580-F8A0-4495-96D6-736C6C7CF3FF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ADF28580-F8A0-4495-96D6-736C6C7CF3FF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ADF28580-F8A0-4495-96D6-736C6C7CF3FF}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -498,7 +522,6 @@ Global {6C762F40-30BB-4CDA-951B-01D45F7C2B53} = {AAF02051-771B-4CC0-BD17-1A3643F83E09} {E67FA5C3-132C-4F47-B6A6-8FA4376C70BB} = {CF59695F-7948-4743-A467-42E4B4C9EECA} {1C06151A-45F0-4D48-8303-3D4CBE9517F7} = {CF59695F-7948-4743-A467-42E4B4C9EECA} - {345B5CDA-DC77-4956-BF96-80707EC1B5B2} = {7EFFD2C6-2041-4967-A715-0F817D70C433} {9D9D979A-AFC7-F9D0-2D23-8809E83F9EF9} = {EBCB740D-07E7-4CED-A422-90EB824B9021} {9F68B0E2-0B1D-E0E8-1BE7-079F693A4643} = {EBCB740D-07E7-4CED-A422-90EB824B9021} {D1A86C77-533D-5B68-04F1-7F7BFBF56AC7} = {EBCB740D-07E7-4CED-A422-90EB824B9021} @@ -566,6 +589,11 @@ Global {9A034977-0FBC-A3C8-8432-9FDD073F215A} = {4CBFE8AF-968B-453D-B763-3D0437C0883D} {1C89424B-DA16-8840-4AB0-C446CFBD634C} = {4CBFE8AF-968B-453D-B763-3D0437C0883D} {3641CA05-99C5-2245-C663-6CE00730E87C} = {4CBFE8AF-968B-453D-B763-3D0437C0883D} + {A773C53C-F145-043A-7F55-79ABDB11893B} = {7EFFD2C6-2041-4967-A715-0F817D70C433} + {2DBCE12E-4A5F-4AB9-82BB-4BDDE48AABBF} = {7EFFD2C6-2041-4967-A715-0F817D70C433} + {8CA6B487-3AAF-4E77-ACE0-01D878DE4836} = {7EFFD2C6-2041-4967-A715-0F817D70C433} + {BBB1A129-9ED7-4F08-B710-B6C287197BFB} = {7EFFD2C6-2041-4967-A715-0F817D70C433} + {ADF28580-F8A0-4495-96D6-736C6C7CF3FF} = {7EFFD2C6-2041-4967-A715-0F817D70C433} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {28315BFD-90E7-4E14-A2EA-F3D23AF4126F} diff --git a/applications/KonSoft.AuthServer/KonSoft.AuthServer.csproj b/applications/KonSoft.AuthServer/KonSoft.AuthServer.csproj index 8481f66..2343352 100644 --- a/applications/KonSoft.AuthServer/KonSoft.AuthServer.csproj +++ b/applications/KonSoft.AuthServer/KonSoft.AuthServer.csproj @@ -69,4 +69,8 @@ + + + + diff --git a/applications/KonSoft.AuthServer/KonSoftAuthServerModule.cs b/applications/KonSoft.AuthServer/KonSoftAuthServerModule.cs index dc540ea..171c3b1 100644 --- a/applications/KonSoft.AuthServer/KonSoftAuthServerModule.cs +++ b/applications/KonSoft.AuthServer/KonSoftAuthServerModule.cs @@ -1,48 +1,31 @@ +using KonSoft.Shared.Hosting.AspNetCore; +using KonSoft.Shared.Hosting.Microservices; +using KonSoft.Shared.Localization.Localization; using Localization.Resources.AbpUi; -using Medallion.Threading; -using Medallion.Threading.Redis; using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Cors; -using Microsoft.AspNetCore.DataProtection; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; -using StackExchange.Redis; -using System; -using System.IO; -using System.Linq; using Volo.Abp; using Volo.Abp.Account; using Volo.Abp.Account.Localization; using Volo.Abp.Account.Web; using Volo.Abp.AspNetCore.Mvc.UI.Bundling; -using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; -using Volo.Abp.AspNetCore.Serilog; using Volo.Abp.Auditing; -using Volo.Abp.Autofac; using Volo.Abp.BackgroundJobs; -using Volo.Abp.Caching; -using Volo.Abp.Caching.StackExchangeRedis; -using Volo.Abp.DistributedLocking; using Volo.Abp.Localization; using Volo.Abp.Modularity; using Volo.Abp.OpenIddict; using Volo.Abp.Security.Claims; -using Volo.Abp.UI.Navigation.Urls; -using Volo.Abp.VirtualFileSystem; namespace KonSoft; [DependsOn( - typeof(AbpAutofacModule), - typeof(AbpCachingStackExchangeRedisModule), - typeof(AbpDistributedLockingModule), typeof(AbpAccountWebOpenIddictModule), typeof(AbpAccountApplicationModule), typeof(AbpAccountHttpApiModule), - typeof(AbpAspNetCoreMvcUiBasicThemeModule), - typeof(AbpAspNetCoreSerilogModule) + typeof(KonSoftSharedHostingMicroservicesModule) )] public class KonSoftAuthServerModule : AbpModule { @@ -107,54 +90,11 @@ public class KonSoftAuthServerModule : AbpModule options.ApplicationName = "AuthServer"; }); - Configure(options => - { - options.Applications["MVC"].RootUrl = configuration["App:SelfUrl"]; - options.RedirectAllowedUrls.AddRange(configuration["App:RedirectAllowedUrls"]?.Split(',') ?? []); - }); - Configure(options => { options.IsJobExecutionEnabled = false; }); - Configure(options => - { - options.KeyPrefix = "KonSoft:"; - }); - - var dataProtectionBuilder = context.Services.AddDataProtection().SetApplicationName("KonSoft"); - if (!hostingEnvironment.IsDevelopment()) - { - var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]!); - dataProtectionBuilder.PersistKeysToStackExchangeRedis(redis, "KonSoft-Protection-Keys"); - } - - context.Services.AddSingleton(sp => - { - var connection = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]!); - return new RedisDistributedSynchronizationProvider(connection.GetDatabase()); - }); - - context.Services.AddCors(options => - { - options.AddDefaultPolicy(builder => - { - builder - .WithOrigins( - configuration["App:CorsOrigins"]? - .Split(",", StringSplitOptions.RemoveEmptyEntries) - .Select(o => o.RemovePostFix("/")) - .ToArray() ?? [] - ) - .WithAbpExposedHeaders() - .SetIsOriginAllowedToAllowWildcardSubdomains() - .AllowAnyHeader() - .AllowAnyMethod() - .AllowCredentials(); - }); - }); - context.Services.Configure(options => { options.IsDynamicClaimsEnabled = true; @@ -185,7 +125,7 @@ public class KonSoftAuthServerModule : AbpModule app.UseAuthentication(); app.UseAbpOpenIddictValidation(); - if (MultiTenancyConsts.IsEnabled) + if (KonSoftConsts.MultiTenancyEnabled) { app.UseMultiTenancy(); } diff --git a/applications/KonSoft.AuthServer/KonSoftBrandingProvider.cs b/applications/KonSoft.AuthServer/KonSoftBrandingProvider.cs index fd0bc22..56858dd 100644 --- a/applications/KonSoft.AuthServer/KonSoftBrandingProvider.cs +++ b/applications/KonSoft.AuthServer/KonSoftBrandingProvider.cs @@ -1,7 +1,7 @@ -using Microsoft.Extensions.Localization; -using KonSoft.Localization; -using Volo.Abp.Ui.Branding; +using KonSoft.Shared.Localization.Localization; +using Microsoft.Extensions.Localization; using Volo.Abp.DependencyInjection; +using Volo.Abp.Ui.Branding; namespace KonSoft; diff --git a/applications/KonSoft.AuthServer/Pages/Index.cshtml b/applications/KonSoft.AuthServer/Pages/Index.cshtml index 79acd9d..100f64a 100644 --- a/applications/KonSoft.AuthServer/Pages/Index.cshtml +++ b/applications/KonSoft.AuthServer/Pages/Index.cshtml @@ -2,7 +2,7 @@ @using Microsoft.AspNetCore.Http.Extensions @using Microsoft.AspNetCore.Mvc.Localization @using KonSoft.Pages -@using KonSoft.Localization +@using KonSoft.Shared.Localization.Localization @using Volo.Abp.Users @using Volo.Abp.AspNetCore.Mvc.UI.Theming @using Volo.Abp.Ui.Branding diff --git a/microservices/KonSoft.Admin.HttpApi.Host/AdminHttpApiHostModule.cs b/microservices/KonSoft.Admin.HttpApi.Host/AdminHttpApiHostModule.cs index 894cba9..f142e0c 100644 --- a/microservices/KonSoft.Admin.HttpApi.Host/AdminHttpApiHostModule.cs +++ b/microservices/KonSoft.Admin.HttpApi.Host/AdminHttpApiHostModule.cs @@ -1,161 +1,37 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using Medallion.Threading; -using Medallion.Threading.Redis; -using Microsoft.AspNetCore.Authentication.JwtBearer; +using KonSoft.Admin.EntityFrameworkCore; +using KonSoft.Shared.Hosting.AspNetCore; +using KonSoft.Shared.Hosting.Microservices; using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Cors; -using Microsoft.AspNetCore.DataProtection; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; -using KonSoft.Admin.EntityFrameworkCore; -using KonSoft.Admin.MultiTenancy; -using StackExchange.Redis; -using Microsoft.OpenApi.Models; using Volo.Abp; -using Volo.Abp.AspNetCore.Authentication.JwtBearer; -using Volo.Abp.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy; -using Volo.Abp.AspNetCore.Serilog; -using Volo.Abp.Autofac; -using Volo.Abp.Caching; -using Volo.Abp.Caching.StackExchangeRedis; -using Volo.Abp.DistributedLocking; -using Volo.Abp.Identity; -using Volo.Abp.Localization; +using Volo.Abp.BackgroundJobs; using Volo.Abp.Modularity; -using Volo.Abp.Security.Claims; -using Volo.Abp.Swashbuckle; -using Volo.Abp.VirtualFileSystem; namespace KonSoft.Admin; [DependsOn( typeof(AdminHttpApiModule), - typeof(AbpAutofacModule), - typeof(AbpCachingStackExchangeRedisModule), - typeof(AbpDistributedLockingModule), - typeof(AbpAspNetCoreMvcUiMultiTenancyModule), - typeof(AbpAspNetCoreAuthenticationJwtBearerModule), typeof(AdminApplicationModule), typeof(AdminEntityFrameworkCoreModule), - typeof(AbpAspNetCoreSerilogModule), - typeof(AbpSwashbuckleModule) + typeof(KonSoftSharedHostingMicroservicesModule) )] public class AdminHttpApiHostModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) { var configuration = context.Services.GetConfiguration(); - var hostingEnvironment = context.Services.GetHostingEnvironment(); - ConfigureConventionalControllers(); - ConfigureAuthentication(context, configuration); - ConfigureCache(configuration); - ConfigureVirtualFileSystem(context); - ConfigureDataProtection(context, configuration, hostingEnvironment); - ConfigureDistributedLocking(context, configuration); - ConfigureCors(context, configuration); - ConfigureSwaggerServices(context, configuration); - } + SwaggerConfigurationHelper.ConfigureWithOidc( + context: context, + authority: configuration["AuthServer:Authority"]!, + scopes: ["AdministrationService"], + discoveryEndpoint: configuration["AuthServer:MetadataAddress"], + apiTitle: "Administration Service API" + ); - private void ConfigureCache(IConfiguration configuration) - { - Configure(options => { options.KeyPrefix = "Admin:"; }); - } - - private void ConfigureVirtualFileSystem(ServiceConfigurationContext context) - { - var hostingEnvironment = context.Services.GetHostingEnvironment(); - - } - - private void ConfigureConventionalControllers() - { - Configure(options => - { - options.ConventionalControllers.Create(typeof(AdminApplicationModule).Assembly); - }); - } - - private void ConfigureAuthentication(ServiceConfigurationContext context, IConfiguration configuration) - { - context.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) - .AddAbpJwtBearer(options => - { - options.Authority = configuration["AuthServer:Authority"]; - options.RequireHttpsMetadata = configuration.GetValue("AuthServer:RequireHttpsMetadata"); - options.Audience = "Admin"; - }); - - context.Services.Configure(options => - { - options.IsDynamicClaimsEnabled = true; - }); - } - - private static void ConfigureSwaggerServices(ServiceConfigurationContext context, IConfiguration configuration) - { - context.Services.AddAbpSwaggerGenWithOAuth( - configuration["AuthServer:Authority"]!, - new Dictionary - { - {"Admin", "Admin API"} - }, - options => - { - options.SwaggerDoc("v1", new OpenApiInfo { Title = "Admin API", Version = "v1" }); - options.DocInclusionPredicate((docName, description) => true); - options.CustomSchemaIds(type => type.FullName); - }); - } - - private void ConfigureDataProtection( - ServiceConfigurationContext context, - IConfiguration configuration, - IWebHostEnvironment hostingEnvironment) - { - var dataProtectionBuilder = context.Services.AddDataProtection().SetApplicationName("Admin"); - if (!hostingEnvironment.IsDevelopment()) - { - var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]!); - dataProtectionBuilder.PersistKeysToStackExchangeRedis(redis, "Admin-Protection-Keys"); - } - } - - private void ConfigureDistributedLocking( - ServiceConfigurationContext context, - IConfiguration configuration) - { - context.Services.AddSingleton(sp => - { - var connection = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]!); - return new RedisDistributedSynchronizationProvider(connection.GetDatabase()); - }); - } - - private void ConfigureCors(ServiceConfigurationContext context, IConfiguration configuration) - { - context.Services.AddCors(options => - { - options.AddDefaultPolicy(builder => - { - builder - .WithOrigins(configuration["App:CorsOrigins"]? - .Split(",", StringSplitOptions.RemoveEmptyEntries) - .Select(o => o.RemovePostFix("/")) - .ToArray() ?? []) - .WithAbpExposedHeaders() - .SetIsOriginAllowedToAllowWildcardSubdomains() - .AllowAnyHeader() - .AllowAnyMethod() - .AllowCredentials(); - }); - }); + // ֻ¼¼ + Configure(options => options.IsJobExecutionEnabled = false); } public override void OnApplicationInitialization(ApplicationInitializationContext context) @@ -175,7 +51,7 @@ public class AdminHttpApiHostModule : AbpModule app.UseCors(); app.UseAuthentication(); - if (MultiTenancyConsts.IsEnabled) + if (KonSoftConsts.MultiTenancyEnabled) { app.UseMultiTenancy(); } diff --git a/microservices/KonSoft.Admin.HttpApi.Host/KonSoft.Admin.HttpApi.Host.csproj b/microservices/KonSoft.Admin.HttpApi.Host/KonSoft.Admin.HttpApi.Host.csproj index 3bac00b..9022022 100644 --- a/microservices/KonSoft.Admin.HttpApi.Host/KonSoft.Admin.HttpApi.Host.csproj +++ b/microservices/KonSoft.Admin.HttpApi.Host/KonSoft.Admin.HttpApi.Host.csproj @@ -10,22 +10,6 @@ ..\.. - - - - - - - - - - - - - - - - @@ -37,6 +21,7 @@ + diff --git a/microservices/KonSoft.Admin.HttpApi.Host/Logs/logs.txt b/microservices/KonSoft.Admin.HttpApi.Host/Logs/logs.txt index 4a39f2b..c908aac 100644 --- a/microservices/KonSoft.Admin.HttpApi.Host/Logs/logs.txt +++ b/microservices/KonSoft.Admin.HttpApi.Host/Logs/logs.txt @@ -256,3 +256,772 @@ 2025-10-03 15:48:43.509 +08:00 [INF] - Volo.Abp.FeatureManagement.EntityFrameworkCore.AbpFeatureManagementEntityFrameworkCoreModule 2025-10-03 15:48:43.509 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule 2025-10-03 15:48:43.509 +08:00 [INF] - Volo.Abp.Swashbuckle.AbpSwashbuckleModule +2025-10-03 17:54:15.084 +08:00 [INF] Starting KonSoft.Admin.HttpApi.Host. +2025-10-03 18:02:34.091 +08:00 [INF] Starting KonSoft.Admin.HttpApi.Host. +2025-10-03 18:02:38.170 +08:00 [INF] Loaded ABP modules: +2025-10-03 18:02:38.171 +08:00 [INF] - KonSoft.Admin.AdminHttpApiHostModule +2025-10-03 18:02:38.171 +08:00 [INF] - KonSoft.Admin.AdminHttpApiModule +2025-10-03 18:02:38.171 +08:00 [INF] - KonSoft.Admin.AdminApplicationContractsModule +2025-10-03 18:02:38.171 +08:00 [INF] - KonSoft.Admin.AdminDomainSharedModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementApplicationContractsModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementApplicationContractsModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementApplicationContractsModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.PermissionManagement.HttpApi.AbpPermissionManagementHttpApiModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementHttpApiModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementHttpApiModule +2025-10-03 18:02:38.171 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementHttpApiModule +2025-10-03 18:02:38.171 +08:00 [INF] - KonSoft.Admin.AdminApplicationModule +2025-10-03 18:02:38.172 +08:00 [INF] - KonSoft.Admin.AdminDomainModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.PermissionManagement.OpenIddict.AbpPermissionManagementDomainOpenIddictModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementApplicationModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementApplicationModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementApplicationModule +2025-10-03 18:02:38.172 +08:00 [INF] - KonSoft.Admin.EntityFrameworkCore.AdminEntityFrameworkCoreModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.Identity.EntityFrameworkCore.AbpIdentityEntityFrameworkCoreModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.Users.EntityFrameworkCore.AbpUsersEntityFrameworkCoreModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.EntityFrameworkCore.AbpEntityFrameworkCoreModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.OpenIddict.EntityFrameworkCore.AbpOpenIddictEntityFrameworkCoreModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.PermissionManagement.EntityFrameworkCore.AbpPermissionManagementEntityFrameworkCoreModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.SettingManagement.EntityFrameworkCore.AbpSettingManagementEntityFrameworkCoreModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.EntityFrameworkCore.PostgreSql.AbpEntityFrameworkCorePostgreSqlModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.BackgroundJobs.EntityFrameworkCore.AbpBackgroundJobsEntityFrameworkCoreModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.AuditLogging.EntityFrameworkCore.AbpAuditLoggingEntityFrameworkCoreModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.TenantManagement.EntityFrameworkCore.AbpTenantManagementEntityFrameworkCoreModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.FeatureManagement.EntityFrameworkCore.AbpFeatureManagementEntityFrameworkCoreModule +2025-10-03 18:02:38.172 +08:00 [INF] - KonSoft.Shared.Hosting.Microservices.KonSoftSharedHostingMicroservicesModule +2025-10-03 18:02:38.172 +08:00 [INF] - KonSoft.Shared.Hosting.AspNetCore.KonSoftSharedHostingAspNetCoreModule +2025-10-03 18:02:38.172 +08:00 [INF] - KonSoft.Shared.Localization.KonSoftSharedLocalizationModule +2025-10-03 18:02:38.172 +08:00 [INF] - KonSoft.Shared.Hosting.KonSoftSharedHostingModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.Swashbuckle.AbpSwashbuckleModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.BackgroundJobs.RabbitMQ.AbpBackgroundJobsRabbitMqModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.RabbitMQ.AbpRabbitMqModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.AspNetCore.Authentication.JwtBearer.AbpAspNetCoreAuthenticationJwtBearerModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.EventBus.RabbitMq.AbpEventBusRabbitMqModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2025-10-03 18:02:38.172 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2025-10-03 18:02:39.610 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2025-10-03 18:03:05.715 +08:00 [INF] Starting KonSoft.Admin.HttpApi.Host. +2025-10-03 18:03:08.806 +08:00 [INF] Loaded ABP modules: +2025-10-03 18:03:08.807 +08:00 [INF] - KonSoft.Admin.AdminHttpApiHostModule +2025-10-03 18:03:08.807 +08:00 [INF] - KonSoft.Admin.AdminHttpApiModule +2025-10-03 18:03:08.807 +08:00 [INF] - KonSoft.Admin.AdminApplicationContractsModule +2025-10-03 18:03:08.807 +08:00 [INF] - KonSoft.Admin.AdminDomainSharedModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementApplicationContractsModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementApplicationContractsModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementApplicationContractsModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.PermissionManagement.HttpApi.AbpPermissionManagementHttpApiModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementHttpApiModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementHttpApiModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementHttpApiModule +2025-10-03 18:03:08.807 +08:00 [INF] - KonSoft.Admin.AdminApplicationModule +2025-10-03 18:03:08.807 +08:00 [INF] - KonSoft.Admin.AdminDomainModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.PermissionManagement.OpenIddict.AbpPermissionManagementDomainOpenIddictModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementApplicationModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementApplicationModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementApplicationModule +2025-10-03 18:03:08.807 +08:00 [INF] - KonSoft.Admin.EntityFrameworkCore.AdminEntityFrameworkCoreModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Identity.EntityFrameworkCore.AbpIdentityEntityFrameworkCoreModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Users.EntityFrameworkCore.AbpUsersEntityFrameworkCoreModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.EntityFrameworkCore.AbpEntityFrameworkCoreModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.OpenIddict.EntityFrameworkCore.AbpOpenIddictEntityFrameworkCoreModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.PermissionManagement.EntityFrameworkCore.AbpPermissionManagementEntityFrameworkCoreModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.SettingManagement.EntityFrameworkCore.AbpSettingManagementEntityFrameworkCoreModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.EntityFrameworkCore.PostgreSql.AbpEntityFrameworkCorePostgreSqlModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.BackgroundJobs.EntityFrameworkCore.AbpBackgroundJobsEntityFrameworkCoreModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.AuditLogging.EntityFrameworkCore.AbpAuditLoggingEntityFrameworkCoreModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.TenantManagement.EntityFrameworkCore.AbpTenantManagementEntityFrameworkCoreModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.FeatureManagement.EntityFrameworkCore.AbpFeatureManagementEntityFrameworkCoreModule +2025-10-03 18:03:08.807 +08:00 [INF] - KonSoft.Shared.Hosting.Microservices.KonSoftSharedHostingMicroservicesModule +2025-10-03 18:03:08.807 +08:00 [INF] - KonSoft.Shared.Hosting.AspNetCore.KonSoftSharedHostingAspNetCoreModule +2025-10-03 18:03:08.807 +08:00 [INF] - KonSoft.Shared.Localization.KonSoftSharedLocalizationModule +2025-10-03 18:03:08.807 +08:00 [INF] - KonSoft.Shared.Hosting.KonSoftSharedHostingModule +2025-10-03 18:03:08.807 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2025-10-03 18:03:08.808 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2025-10-03 18:03:08.808 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2025-10-03 18:03:08.808 +08:00 [INF] - Volo.Abp.Swashbuckle.AbpSwashbuckleModule +2025-10-03 18:03:08.808 +08:00 [INF] - Volo.Abp.BackgroundJobs.RabbitMQ.AbpBackgroundJobsRabbitMqModule +2025-10-03 18:03:08.808 +08:00 [INF] - Volo.Abp.RabbitMQ.AbpRabbitMqModule +2025-10-03 18:03:08.808 +08:00 [INF] - Volo.Abp.AspNetCore.Authentication.JwtBearer.AbpAspNetCoreAuthenticationJwtBearerModule +2025-10-03 18:03:08.808 +08:00 [INF] - Volo.Abp.EventBus.RabbitMq.AbpEventBusRabbitMqModule +2025-10-03 18:03:08.808 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2025-10-03 18:03:08.808 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2025-10-03 18:03:09.119 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2025-10-03 18:04:00.811 +08:00 [INF] Starting KonSoft.Admin.HttpApi.Host. +2025-10-03 18:04:03.972 +08:00 [INF] Loaded ABP modules: +2025-10-03 18:04:03.972 +08:00 [INF] - KonSoft.Admin.AdminHttpApiHostModule +2025-10-03 18:04:03.972 +08:00 [INF] - KonSoft.Admin.AdminHttpApiModule +2025-10-03 18:04:03.972 +08:00 [INF] - KonSoft.Admin.AdminApplicationContractsModule +2025-10-03 18:04:03.972 +08:00 [INF] - KonSoft.Admin.AdminDomainSharedModule +2025-10-03 18:04:03.972 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2025-10-03 18:04:03.972 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2025-10-03 18:04:03.972 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2025-10-03 18:04:03.972 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2025-10-03 18:04:03.972 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2025-10-03 18:04:03.972 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2025-10-03 18:04:03.972 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2025-10-03 18:04:03.972 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2025-10-03 18:04:03.972 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2025-10-03 18:04:03.972 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2025-10-03 18:04:03.972 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2025-10-03 18:04:03.972 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2025-10-03 18:04:03.972 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2025-10-03 18:04:03.972 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2025-10-03 18:04:03.972 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2025-10-03 18:04:03.972 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2025-10-03 18:04:03.972 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2025-10-03 18:04:03.972 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2025-10-03 18:04:03.972 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2025-10-03 18:04:03.972 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2025-10-03 18:04:03.972 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2025-10-03 18:04:03.972 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2025-10-03 18:04:03.972 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2025-10-03 18:04:03.972 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementApplicationContractsModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementApplicationContractsModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementApplicationContractsModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.PermissionManagement.HttpApi.AbpPermissionManagementHttpApiModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementHttpApiModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementHttpApiModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementHttpApiModule +2025-10-03 18:04:03.973 +08:00 [INF] - KonSoft.Admin.AdminApplicationModule +2025-10-03 18:04:03.973 +08:00 [INF] - KonSoft.Admin.AdminDomainModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.PermissionManagement.OpenIddict.AbpPermissionManagementDomainOpenIddictModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementApplicationModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementApplicationModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementApplicationModule +2025-10-03 18:04:03.973 +08:00 [INF] - KonSoft.Admin.EntityFrameworkCore.AdminEntityFrameworkCoreModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Identity.EntityFrameworkCore.AbpIdentityEntityFrameworkCoreModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Users.EntityFrameworkCore.AbpUsersEntityFrameworkCoreModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.EntityFrameworkCore.AbpEntityFrameworkCoreModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.OpenIddict.EntityFrameworkCore.AbpOpenIddictEntityFrameworkCoreModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.PermissionManagement.EntityFrameworkCore.AbpPermissionManagementEntityFrameworkCoreModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.SettingManagement.EntityFrameworkCore.AbpSettingManagementEntityFrameworkCoreModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.EntityFrameworkCore.PostgreSql.AbpEntityFrameworkCorePostgreSqlModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.BackgroundJobs.EntityFrameworkCore.AbpBackgroundJobsEntityFrameworkCoreModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.AuditLogging.EntityFrameworkCore.AbpAuditLoggingEntityFrameworkCoreModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.TenantManagement.EntityFrameworkCore.AbpTenantManagementEntityFrameworkCoreModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.FeatureManagement.EntityFrameworkCore.AbpFeatureManagementEntityFrameworkCoreModule +2025-10-03 18:04:03.973 +08:00 [INF] - KonSoft.Shared.Hosting.Microservices.KonSoftSharedHostingMicroservicesModule +2025-10-03 18:04:03.973 +08:00 [INF] - KonSoft.Shared.Hosting.AspNetCore.KonSoftSharedHostingAspNetCoreModule +2025-10-03 18:04:03.973 +08:00 [INF] - KonSoft.Shared.Localization.KonSoftSharedLocalizationModule +2025-10-03 18:04:03.973 +08:00 [INF] - KonSoft.Shared.Hosting.KonSoftSharedHostingModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Swashbuckle.AbpSwashbuckleModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.BackgroundJobs.RabbitMQ.AbpBackgroundJobsRabbitMqModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.RabbitMQ.AbpRabbitMqModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.AspNetCore.Authentication.JwtBearer.AbpAspNetCoreAuthenticationJwtBearerModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.EventBus.RabbitMq.AbpEventBusRabbitMqModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2025-10-03 18:04:03.973 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2025-10-03 18:04:04.410 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2025-10-03 18:04:05.322 +08:00 [WRN] Value cannot be null. (Parameter 'chars') +System.ArgumentNullException: Value cannot be null. (Parameter 'chars') + at System.Text.UTF8Encoding.GetByteCount(String chars) + at RabbitMQ.Client.Framing.Impl.ExchangeDeclare.GetRequiredBufferSize() + at RabbitMQ.Client.Impl.OutgoingCommand.GetMaxSize(Int32 maxPayloadBytes) + at RabbitMQ.Client.Impl.OutgoingCommand.Transmit(UInt16 channelNumber, Connection connection) + at RabbitMQ.Client.Impl.SessionBase.Transmit(OutgoingCommand& cmd) + at RabbitMQ.Client.Impl.ModelBase.TransmitAndEnqueue(OutgoingCommand& cmd, IRpcContinuation k) + at RabbitMQ.Client.Impl.ModelBase.ModelRpc(MethodBase method, ContentHeaderBase header, Byte[] body) + at RabbitMQ.Client.Framing.Impl.Model._Private_ExchangeDeclare(String exchange, String type, Boolean passive, Boolean durable, Boolean autoDelete, Boolean internal, Boolean nowait, IDictionary`2 arguments) + at RabbitMQ.Client.Impl.ModelBase.ExchangeDeclare(String exchange, String type, Boolean durable, Boolean autoDelete, IDictionary`2 arguments) + at RabbitMQ.Client.Impl.AutorecoveringModel.ExchangeDeclare(String exchange, String type, Boolean durable, Boolean autoDelete, IDictionary`2 arguments) + at Volo.Abp.RabbitMQ.RabbitMqMessageConsumer.TryCreateChannelAsync() +2025-10-03 18:04:05.326 +08:00 [WRN] Object reference not set to an instance of an object. +System.NullReferenceException: Object reference not set to an instance of an object. + at RabbitMQ.Client.Impl.RecordedBinding.GetHashCode() + at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) + at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) + at RabbitMQ.Client.Framing.Impl.AutorecoveringConnection.RecordBinding(RecordedBinding rb) + at RabbitMQ.Client.Impl.AutorecoveringModel.QueueBind(String queue, String exchange, String routingKey, IDictionary`2 arguments) + at RabbitMQ.Client.IModelExensions.QueueBind(IModel model, String queue, String exchange, String routingKey, IDictionary`2 arguments) + at Volo.Abp.RabbitMQ.RabbitMqMessageConsumer.TrySendQueueBindCommandsAsync() +2025-10-03 18:04:06.096 +08:00 [INF] Initialized all ABP modules. +2025-10-03 18:04:06.273 +08:00 [INF] Creating key {e35dd5f6-13c3-4cc1-8c4c-ff676795c41d} with creation date 2025-10-03 10:04:06Z, activation date 2025-10-03 10:04:06Z, and expiration date 2026-01-01 10:04:06Z. +2025-10-03 18:04:06.277 +08:00 [WRN] No XML encryptor configured. Key {e35dd5f6-13c3-4cc1-8c4c-ff676795c41d} may be persisted to storage in unencrypted form. +2025-10-03 18:04:06.876 +08:00 [INF] Now listening on: https://localhost:44354 +2025-10-03 18:04:07.104 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2025-10-03 18:04:07.104 +08:00 [INF] Hosting environment: Development +2025-10-03 18:04:07.104 +08:00 [INF] Content root path: C:\Users\Administrator\source\repos\KonSoft.Clean\microservices\KonSoft.Admin.HttpApi.Host +2025-10-03 18:04:08.346 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44354/ - null null +2025-10-03 18:04:09.946 +08:00 [ERR] An error occurred using the connection to database 'Clean' on server 'tcp://1.94.99.47:5432'. +2025-10-03 18:04:09.946 +08:00 [ERR] An error occurred using the connection to database 'Clean' on server 'tcp://1.94.99.47:5432'. +2025-10-03 18:04:09.946 +08:00 [ERR] An error occurred using the connection to database 'Clean' on server 'tcp://1.94.99.47:5432'. +2025-10-03 18:04:10.296 +08:00 [ERR] Failed to connect to 1.94.99.47:5432 +Npgsql.NpgsqlException (0x80004005): Failed to connect to 1.94.99.47:5432 + ---> System.Net.Sockets.SocketException (10061): 由于目标计算机积极拒绝,无法连接。 + at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken) + at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token) + at System.Net.Sockets.Socket.g__WaitForConnectWithCancellation|285_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken) + at Npgsql.TaskTimeoutAndCancellation.ExecuteAsync(Func`2 getTaskFunc, NpgsqlTimeout timeout, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.ConnectAsync(NpgsqlTimeout timeout, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.ConnectAsync(NpgsqlTimeout timeout, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.RawOpen(SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken, Boolean isFirstAttempt) + at Npgsql.Internal.NpgsqlConnector.g__OpenCore|213_1(NpgsqlConnector conn, SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken, Boolean isFirstAttempt) + at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.PoolingDataSource.g__RentAsync|34_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.NpgsqlConnection.g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionAsync(IsolationLevel isolationLevel, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionAsync(CancellationToken cancellationToken) + at Volo.Abp.Uow.EntityFrameworkCore.UnitOfWorkDbContextProvider`1.CreateDbContextWithTransactionAsync(IUnitOfWork unitOfWork) + at Volo.Abp.Uow.EntityFrameworkCore.UnitOfWorkDbContextProvider`1.CreateDbContextAsync(IUnitOfWork unitOfWork) + at Volo.Abp.Uow.EntityFrameworkCore.UnitOfWorkDbContextProvider`1.CreateDbContextAsync(IUnitOfWork unitOfWork, String connectionStringName, String connectionString) + at Volo.Abp.Uow.EntityFrameworkCore.UnitOfWorkDbContextProvider`1.GetDbContextAsync() + at Volo.Abp.Domain.Repositories.EntityFrameworkCore.EfCoreRepository`2.GetDbSetAsync() + at Volo.Abp.Domain.Repositories.EntityFrameworkCore.EfCoreRepository`2.GetQueryableAsync() + at Volo.Abp.Domain.Repositories.EntityFrameworkCore.EfCoreRepository`2.GetListAsync(Boolean includeDetails, CancellationToken cancellationToken) + at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) + at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync() + at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) + at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed) + at Volo.Abp.PermissionManagement.StaticPermissionSaver.UpdateChangedPermissionGroupsAsync(IEnumerable`1 permissionGroupRecords) + at Volo.Abp.PermissionManagement.StaticPermissionSaver.SaveAsync() + at Volo.Abp.PermissionManagement.StaticPermissionSaver.SaveAsync() + at Volo.Abp.PermissionManagement.StaticPermissionSaver.SaveAsync() + at Volo.Abp.PermissionManagement.StaticPermissionSaver.SaveAsync() + at Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule.<>c__DisplayClass8_0.<b__1>d.MoveNext() +--- End of stack trace from previous location --- + at Polly.AsyncPolicy.<>c__DisplayClass40_0.<b__0>d.MoveNext() +--- End of stack trace from previous location --- + at Polly.Retry.AsyncRetryEngine.ImplementationAsync[TResult](Func`3 action, Context context, CancellationToken cancellationToken, ExceptionPredicates shouldRetryExceptionPredicates, ResultPredicates`1 shouldRetryResultPredicates, Func`5 onRetryAsync, Int32 permittedRetryCount, IEnumerable`1 sleepDurationsEnumerable, Func`4 sleepDurationProvider, Boolean continueOnCapturedContext) +2025-10-03 18:04:10.296 +08:00 [ERR] Failed to connect to 1.94.99.47:5432 +Npgsql.NpgsqlException (0x80004005): Failed to connect to 1.94.99.47:5432 + ---> System.Net.Sockets.SocketException (10061): 由于目标计算机积极拒绝,无法连接。 + at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken) + at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token) + at System.Net.Sockets.Socket.g__WaitForConnectWithCancellation|285_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken) + at Npgsql.TaskTimeoutAndCancellation.ExecuteAsync(Func`2 getTaskFunc, NpgsqlTimeout timeout, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.ConnectAsync(NpgsqlTimeout timeout, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.ConnectAsync(NpgsqlTimeout timeout, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.RawOpen(SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken, Boolean isFirstAttempt) + at Npgsql.Internal.NpgsqlConnector.g__OpenCore|213_1(NpgsqlConnector conn, SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken, Boolean isFirstAttempt) + at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.PoolingDataSource.g__RentAsync|34_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.NpgsqlConnection.g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionAsync(IsolationLevel isolationLevel, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionAsync(CancellationToken cancellationToken) + at Volo.Abp.Uow.EntityFrameworkCore.UnitOfWorkDbContextProvider`1.CreateDbContextWithTransactionAsync(IUnitOfWork unitOfWork) + at Volo.Abp.Uow.EntityFrameworkCore.UnitOfWorkDbContextProvider`1.CreateDbContextAsync(IUnitOfWork unitOfWork) + at Volo.Abp.Uow.EntityFrameworkCore.UnitOfWorkDbContextProvider`1.CreateDbContextAsync(IUnitOfWork unitOfWork, String connectionStringName, String connectionString) + at Volo.Abp.Uow.EntityFrameworkCore.UnitOfWorkDbContextProvider`1.GetDbContextAsync() + at Volo.Abp.Domain.Repositories.EntityFrameworkCore.EfCoreRepository`2.GetDbSetAsync() + at Volo.Abp.Domain.Repositories.EntityFrameworkCore.EfCoreRepository`2.GetQueryableAsync() + at Volo.Abp.Domain.Repositories.EntityFrameworkCore.EfCoreRepository`2.GetListAsync(Boolean includeDetails, CancellationToken cancellationToken) + at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) + at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync() + at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) + at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed) + at Volo.Abp.FeatureManagement.StaticFeatureSaver.UpdateChangedFeatureGroupsAsync(IEnumerable`1 featureGroupRecords) + at Volo.Abp.FeatureManagement.StaticFeatureSaver.SaveAsync() + at Volo.Abp.FeatureManagement.StaticFeatureSaver.SaveAsync() + at Volo.Abp.FeatureManagement.StaticFeatureSaver.SaveAsync() + at Volo.Abp.FeatureManagement.StaticFeatureSaver.SaveAsync() + at Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule.<>c__DisplayClass8_0.<b__1>d.MoveNext() +--- End of stack trace from previous location --- + at Polly.AsyncPolicy.<>c__DisplayClass40_0.<b__0>d.MoveNext() +--- End of stack trace from previous location --- + at Polly.Retry.AsyncRetryEngine.ImplementationAsync[TResult](Func`3 action, Context context, CancellationToken cancellationToken, ExceptionPredicates shouldRetryExceptionPredicates, ResultPredicates`1 shouldRetryResultPredicates, Func`5 onRetryAsync, Int32 permittedRetryCount, IEnumerable`1 sleepDurationsEnumerable, Func`4 sleepDurationProvider, Boolean continueOnCapturedContext) +2025-10-03 18:04:10.298 +08:00 [ERR] Failed to connect to 1.94.99.47:5432 +Npgsql.NpgsqlException (0x80004005): Failed to connect to 1.94.99.47:5432 + ---> System.Net.Sockets.SocketException (10061): 由于目标计算机积极拒绝,无法连接。 + at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken) + at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token) + at System.Net.Sockets.Socket.g__WaitForConnectWithCancellation|285_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken) + at Npgsql.TaskTimeoutAndCancellation.ExecuteAsync(Func`2 getTaskFunc, NpgsqlTimeout timeout, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.ConnectAsync(NpgsqlTimeout timeout, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.ConnectAsync(NpgsqlTimeout timeout, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.RawOpen(SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken, Boolean isFirstAttempt) + at Npgsql.Internal.NpgsqlConnector.g__OpenCore|213_1(NpgsqlConnector conn, SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken, Boolean isFirstAttempt) + at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.PoolingDataSource.g__RentAsync|34_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.NpgsqlConnection.g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionAsync(IsolationLevel isolationLevel, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionAsync(CancellationToken cancellationToken) + at Volo.Abp.Uow.EntityFrameworkCore.UnitOfWorkDbContextProvider`1.CreateDbContextWithTransactionAsync(IUnitOfWork unitOfWork) + at Volo.Abp.Uow.EntityFrameworkCore.UnitOfWorkDbContextProvider`1.CreateDbContextAsync(IUnitOfWork unitOfWork) + at Volo.Abp.Uow.EntityFrameworkCore.UnitOfWorkDbContextProvider`1.CreateDbContextAsync(IUnitOfWork unitOfWork, String connectionStringName, String connectionString) + at Volo.Abp.Uow.EntityFrameworkCore.UnitOfWorkDbContextProvider`1.GetDbContextAsync() + at Volo.Abp.Domain.Repositories.EntityFrameworkCore.EfCoreRepository`2.GetDbSetAsync() + at Volo.Abp.Domain.Repositories.EntityFrameworkCore.EfCoreRepository`2.GetQueryableAsync() + at Volo.Abp.Domain.Repositories.EntityFrameworkCore.EfCoreRepository`2.GetListAsync(Boolean includeDetails, CancellationToken cancellationToken) + at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) + at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync() + at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) + at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed) + at Volo.Abp.SettingManagement.StaticSettingSaver.UpdateChangedSettingsAsync(List`1 SettingRecords) + at Volo.Abp.SettingManagement.StaticSettingSaver.SaveAsync() + at Volo.Abp.SettingManagement.StaticSettingSaver.SaveAsync() + at Volo.Abp.SettingManagement.StaticSettingSaver.SaveAsync() + at Volo.Abp.SettingManagement.StaticSettingSaver.SaveAsync() + at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo) + at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync() + at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) + at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed) + at Volo.Abp.SettingManagement.AbpSettingManagementDomainModule.<>c__DisplayClass8_0.<b__1>d.MoveNext() +--- End of stack trace from previous location --- + at Polly.AsyncPolicy.<>c__DisplayClass40_0.<b__0>d.MoveNext() +--- End of stack trace from previous location --- + at Polly.Retry.AsyncRetryEngine.ImplementationAsync[TResult](Func`3 action, Context context, CancellationToken cancellationToken, ExceptionPredicates shouldRetryExceptionPredicates, ResultPredicates`1 shouldRetryResultPredicates, Func`5 onRetryAsync, Int32 permittedRetryCount, IEnumerable`1 sleepDurationsEnumerable, Func`4 sleepDurationProvider, Boolean continueOnCapturedContext) +2025-10-03 18:04:11.437 +08:00 [ERR] An error occurred using the connection to database 'Clean' on server 'tcp://1.94.99.47:5432'. +2025-10-03 18:04:11.445 +08:00 [ERR] An exception occurred while iterating over the results of a query for context type 'Volo.Abp.SettingManagement.EntityFrameworkCore.SettingManagementDbContext'. +System.InvalidOperationException: An exception has been raised that is likely due to a transient failure. + ---> Npgsql.NpgsqlException (0x80004005): Failed to connect to 1.94.99.47:5432 + ---> System.Net.Sockets.SocketException (10061): 由于目标计算机积极拒绝,无法连接。 + at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken) + at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token) + at System.Net.Sockets.Socket.g__WaitForConnectWithCancellation|285_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken) + at Npgsql.TaskTimeoutAndCancellation.ExecuteAsync(Func`2 getTaskFunc, NpgsqlTimeout timeout, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.ConnectAsync(NpgsqlTimeout timeout, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.ConnectAsync(NpgsqlTimeout timeout, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.RawOpen(SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken, Boolean isFirstAttempt) + at Npgsql.Internal.NpgsqlConnector.g__OpenCore|213_1(NpgsqlConnector conn, SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken, Boolean isFirstAttempt) + at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.PoolingDataSource.g__RentAsync|34_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.NpgsqlConnection.g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected) + at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Query.Internal.SplitQueryingEnumerable`1.AsyncEnumerator.InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken) + at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken) + --- End of inner exception stack trace --- + at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Query.Internal.SplitQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync() +System.InvalidOperationException: An exception has been raised that is likely due to a transient failure. + ---> Npgsql.NpgsqlException (0x80004005): Failed to connect to 1.94.99.47:5432 + ---> System.Net.Sockets.SocketException (10061): 由于目标计算机积极拒绝,无法连接。 + at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken) + at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token) + at System.Net.Sockets.Socket.g__WaitForConnectWithCancellation|285_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken) + at Npgsql.TaskTimeoutAndCancellation.ExecuteAsync(Func`2 getTaskFunc, NpgsqlTimeout timeout, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.ConnectAsync(NpgsqlTimeout timeout, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.ConnectAsync(NpgsqlTimeout timeout, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.RawOpen(SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken, Boolean isFirstAttempt) + at Npgsql.Internal.NpgsqlConnector.g__OpenCore|213_1(NpgsqlConnector conn, SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken, Boolean isFirstAttempt) + at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.PoolingDataSource.g__RentAsync|34_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.NpgsqlConnection.g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected) + at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Query.Internal.SplitQueryingEnumerable`1.AsyncEnumerator.InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken) + at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken) + --- End of inner exception stack trace --- + at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Query.Internal.SplitQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync() + at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync[TSource](IQueryable`1 source, CancellationToken cancellationToken) +2025-10-03 18:04:11.453 +08:00 [ERR] An unhandled exception has occurred while executing the request. +System.InvalidOperationException: An exception has been raised that is likely due to a transient failure. + ---> Npgsql.NpgsqlException (0x80004005): Failed to connect to 1.94.99.47:5432 + ---> System.Net.Sockets.SocketException (10061): 由于目标计算机积极拒绝,无法连接。 + at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken) + at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token) + at System.Net.Sockets.Socket.g__WaitForConnectWithCancellation|285_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken) + at Npgsql.TaskTimeoutAndCancellation.ExecuteAsync(Func`2 getTaskFunc, NpgsqlTimeout timeout, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.ConnectAsync(NpgsqlTimeout timeout, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.ConnectAsync(NpgsqlTimeout timeout, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.RawOpen(SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken, Boolean isFirstAttempt) + at Npgsql.Internal.NpgsqlConnector.g__OpenCore|213_1(NpgsqlConnector conn, SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken, Boolean isFirstAttempt) + at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.PoolingDataSource.g__RentAsync|34_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.NpgsqlConnection.g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected) + at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Query.Internal.SplitQueryingEnumerable`1.AsyncEnumerator.InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken) + at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken) + --- End of inner exception stack trace --- + at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Query.Internal.SplitQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync() + at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync[TSource](IQueryable`1 source, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync[TSource](IQueryable`1 source, CancellationToken cancellationToken) + at Volo.Abp.SettingManagement.EntityFrameworkCore.EfCoreSettingRepository.GetListAsync(String providerName, String providerKey, CancellationToken cancellationToken) + at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) + at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync() + at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) + at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed) + at Volo.Abp.SettingManagement.SettingManagementStore.SetCacheItemsAsync(String providerName, String providerKey, String currentName, SettingCacheItem currentCacheItem) + at Volo.Abp.SettingManagement.SettingManagementStore.GetCacheItemAsync(String name, String providerName, String providerKey) + at Volo.Abp.SettingManagement.SettingManagementStore.GetOrNullAsync(String name, String providerName, String providerKey) + at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) + at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync() + at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) + at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed) + at Volo.Abp.Settings.TenantSettingValueProvider.GetOrNullAsync(SettingDefinition setting) + at Volo.Abp.Settings.SettingProvider.GetOrNullValueFromProvidersAsync(IEnumerable`1 providers, SettingDefinition setting) + at Volo.Abp.Settings.SettingProvider.GetOrNullAsync(String name) + at Microsoft.AspNetCore.RequestLocalization.DefaultAbpRequestLocalizationOptionsProvider.GetLocalizationOptionsAsync() + at Microsoft.AspNetCore.RequestLocalization.AbpRequestLocalizationMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) + at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<b__0>d.MoveNext() +--- End of stack trace from previous location --- + at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context) +2025-10-03 18:04:11.574 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44354/ - 500 null text/html; charset=utf-8 3230.0613ms +2025-10-03 18:04:11.600 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44354/_framework/aspnetcore-browser-refresh.js - null null +2025-10-03 18:04:11.600 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44354/_vs/browserLink - null null +2025-10-03 18:04:11.611 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44354/_framework/aspnetcore-browser-refresh.js - 200 16537 application/javascript; charset=utf-8 12.4729ms +2025-10-03 18:04:11.832 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44354/_vs/browserLink - 200 null text/javascript; charset=UTF-8 233.5858ms +2025-10-03 18:04:12.021 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44354/favicon.ico - null null +2025-10-03 18:04:14.519 +08:00 [ERR] An error occurred using the connection to database 'Clean' on server 'tcp://1.94.99.47:5432'. +2025-10-03 18:04:14.522 +08:00 [ERR] An exception occurred while iterating over the results of a query for context type 'Volo.Abp.SettingManagement.EntityFrameworkCore.SettingManagementDbContext'. +System.InvalidOperationException: An exception has been raised that is likely due to a transient failure. + ---> Npgsql.NpgsqlException (0x80004005): Failed to connect to 1.94.99.47:5432 + ---> System.Net.Sockets.SocketException (10061): 由于目标计算机积极拒绝,无法连接。 + at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken) + at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token) + at System.Net.Sockets.Socket.g__WaitForConnectWithCancellation|285_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken) + at Npgsql.TaskTimeoutAndCancellation.ExecuteAsync(Func`2 getTaskFunc, NpgsqlTimeout timeout, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.ConnectAsync(NpgsqlTimeout timeout, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.ConnectAsync(NpgsqlTimeout timeout, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.RawOpen(SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken, Boolean isFirstAttempt) + at Npgsql.Internal.NpgsqlConnector.g__OpenCore|213_1(NpgsqlConnector conn, SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken, Boolean isFirstAttempt) + at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.PoolingDataSource.g__RentAsync|34_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.NpgsqlConnection.g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected) + at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Query.Internal.SplitQueryingEnumerable`1.AsyncEnumerator.InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken) + at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken) + --- End of inner exception stack trace --- + at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Query.Internal.SplitQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync() +System.InvalidOperationException: An exception has been raised that is likely due to a transient failure. + ---> Npgsql.NpgsqlException (0x80004005): Failed to connect to 1.94.99.47:5432 + ---> System.Net.Sockets.SocketException (10061): 由于目标计算机积极拒绝,无法连接。 + at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken) + at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token) + at System.Net.Sockets.Socket.g__WaitForConnectWithCancellation|285_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken) + at Npgsql.TaskTimeoutAndCancellation.ExecuteAsync(Func`2 getTaskFunc, NpgsqlTimeout timeout, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.ConnectAsync(NpgsqlTimeout timeout, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.ConnectAsync(NpgsqlTimeout timeout, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.RawOpen(SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken, Boolean isFirstAttempt) + at Npgsql.Internal.NpgsqlConnector.g__OpenCore|213_1(NpgsqlConnector conn, SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken, Boolean isFirstAttempt) + at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.PoolingDataSource.g__RentAsync|34_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.NpgsqlConnection.g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected) + at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Query.Internal.SplitQueryingEnumerable`1.AsyncEnumerator.InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken) + at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken) + --- End of inner exception stack trace --- + at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Query.Internal.SplitQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync() + at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync[TSource](IQueryable`1 source, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync[TSource](IQueryable`1 source, CancellationToken cancellationToken) + at Volo.Abp.SettingManagement.EntityFrameworkCore.EfCoreSettingRepository.GetListAsync(String providerName, String providerKey, CancellationToken cancellationToken) + at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) + at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync() + at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) + at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed) + at Volo.Abp.SettingManagement.SettingManagementStore.SetCacheItemsAsync(String providerName, String providerKey, String currentName, SettingCacheItem currentCacheItem) + at Volo.Abp.SettingManagement.SettingManagementStore.GetCacheItemAsync(String name, String providerName, String providerKey) + at Volo.Abp.SettingManagement.SettingManagementStore.GetOrNullAsync(String name, String providerName, String providerKey) + at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) + at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync() + at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) + at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed) + at Volo.Abp.Settings.TenantSettingValueProvider.GetOrNullAsync(SettingDefinition setting) + at Volo.Abp.Settings.SettingProvider.GetOrNullValueFromProvidersAsync(IEnumerable`1 providers, SettingDefinition setting) + at Volo.Abp.Settings.SettingProvider.GetOrNullAsync(String name) + at Microsoft.AspNetCore.RequestLocalization.DefaultAbpRequestLocalizationOptionsProvider.GetLocalizationOptionsAsync() + at Microsoft.AspNetCore.RequestLocalization.AbpRequestLocalizationMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) + at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<b__0>d.MoveNext() +--- End of stack trace from previous location --- + at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context) +2025-10-03 18:04:14.525 +08:00 [ERR] An unhandled exception has occurred while executing the request. +System.InvalidOperationException: An exception has been raised that is likely due to a transient failure. + ---> Npgsql.NpgsqlException (0x80004005): Failed to connect to 1.94.99.47:5432 + ---> System.Net.Sockets.SocketException (10061): 由于目标计算机积极拒绝,无法连接。 + at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken) + at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token) + at System.Net.Sockets.Socket.g__WaitForConnectWithCancellation|285_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken) + at Npgsql.TaskTimeoutAndCancellation.ExecuteAsync(Func`2 getTaskFunc, NpgsqlTimeout timeout, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.ConnectAsync(NpgsqlTimeout timeout, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.ConnectAsync(NpgsqlTimeout timeout, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.RawOpen(SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken, Boolean isFirstAttempt) + at Npgsql.Internal.NpgsqlConnector.g__OpenCore|213_1(NpgsqlConnector conn, SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken, Boolean isFirstAttempt) + at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.PoolingDataSource.g__RentAsync|34_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.NpgsqlConnection.g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected) + at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Query.Internal.SplitQueryingEnumerable`1.AsyncEnumerator.InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken) + at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken) + --- End of inner exception stack trace --- + at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.Query.Internal.SplitQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync() + at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync[TSource](IQueryable`1 source, CancellationToken cancellationToken) + at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync[TSource](IQueryable`1 source, CancellationToken cancellationToken) + at Volo.Abp.SettingManagement.EntityFrameworkCore.EfCoreSettingRepository.GetListAsync(String providerName, String providerKey, CancellationToken cancellationToken) + at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) + at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync() + at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) + at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed) + at Volo.Abp.SettingManagement.SettingManagementStore.SetCacheItemsAsync(String providerName, String providerKey, String currentName, SettingCacheItem currentCacheItem) + at Volo.Abp.SettingManagement.SettingManagementStore.GetCacheItemAsync(String name, String providerName, String providerKey) + at Volo.Abp.SettingManagement.SettingManagementStore.GetOrNullAsync(String name, String providerName, String providerKey) + at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) + at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync() + at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) + at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed) + at Volo.Abp.Settings.TenantSettingValueProvider.GetOrNullAsync(SettingDefinition setting) + at Volo.Abp.Settings.SettingProvider.GetOrNullValueFromProvidersAsync(IEnumerable`1 providers, SettingDefinition setting) + at Volo.Abp.Settings.SettingProvider.GetOrNullAsync(String name) + at Microsoft.AspNetCore.RequestLocalization.DefaultAbpRequestLocalizationOptionsProvider.GetLocalizationOptionsAsync() + at Microsoft.AspNetCore.RequestLocalization.AbpRequestLocalizationMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) + at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<b__0>d.MoveNext() +--- End of stack trace from previous location --- + at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context) +2025-10-03 18:04:14.530 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44354/favicon.ico - 500 null text/plain; charset=utf-8 2509.1194ms diff --git a/microservices/KonSoft.Admin.HttpApi.Host/Program.cs b/microservices/KonSoft.Admin.HttpApi.Host/Program.cs index 6d2ff4d..f357a71 100644 --- a/microservices/KonSoft.Admin.HttpApi.Host/Program.cs +++ b/microservices/KonSoft.Admin.HttpApi.Host/Program.cs @@ -1,56 +1,28 @@ -using System; -using System.Threading.Tasks; +using KonSoft.Admin; +using KonSoft.Shared.Hosting.AspNetCore; using Microsoft.AspNetCore.Builder; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; using Serilog; -using Serilog.Events; +using System; -namespace KonSoft.Admin; +var assemblyName = typeof(Program).Assembly.GetName().Name!; -public class Program +SerilogConfigurationHelper.Configure(assemblyName); +try { - public async static Task Main(string[] args) - { - Log.Logger = new LoggerConfiguration() -#if DEBUG - .MinimumLevel.Debug() -#else - .MinimumLevel.Information() -#endif - .MinimumLevel.Override("Microsoft", LogEventLevel.Information) - .MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning) - .Enrich.FromLogContext() - .WriteTo.Async(c => c.File("Logs/logs.txt")) - .WriteTo.Async(c => c.Console()) - .CreateLogger(); + Log.Information($"Starting {assemblyName}."); + var app = await ApplicationBuilderHelper + .BuildApplicationAsync(args); + await app.InitializeApplicationAsync(); + await app.RunAsync(); - try - { - Log.Information("Starting KonSoft.Admin.HttpApi.Host."); - var builder = WebApplication.CreateBuilder(args); - builder.Host.AddAppSettingsSecretsJson() - .UseAutofac() - .UseSerilog(); - await builder.AddApplicationAsync(); - var app = builder.Build(); - await app.InitializeApplicationAsync(); - await app.RunAsync(); - return 0; - } - catch (Exception ex) - { - if (ex is HostAbortedException) - { - throw; - } - - Log.Fatal(ex, "Host terminated unexpectedly!"); - return 1; - } - finally - { - Log.CloseAndFlush(); - } - } + return 0; } +catch (Exception ex) +{ + Log.Fatal(ex, $"{assemblyName} terminated unexpectedly!"); + return 1; +} +finally +{ + await Log.CloseAndFlushAsync(); +} \ No newline at end of file diff --git a/microservices/KonSoft.Admin.HttpApi.Host/Properties/launchSettings.json b/microservices/KonSoft.Admin.HttpApi.Host/Properties/launchSettings.json index 67003eb..7c66c2b 100644 --- a/microservices/KonSoft.Admin.HttpApi.Host/Properties/launchSettings.json +++ b/microservices/KonSoft.Admin.HttpApi.Host/Properties/launchSettings.json @@ -1,12 +1,5 @@ { "profiles": { - "IIS Express": { - "commandName": "IISExpress", - "launchBrowser": true, - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, "KonSoft.Admin.HttpApi.Host": { "commandName": "Project", "launchBrowser": true, @@ -26,13 +19,5 @@ "publishAllPorts": true, "useSSL": true } - }, - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "https://localhost:44354", - "sslPort": 44354 - } } } \ No newline at end of file diff --git a/microservices/KonSoft.Admin.HttpApi.Host/appsettings.json b/microservices/KonSoft.Admin.HttpApi.Host/appsettings.json index 969d4fa..5ea53ed 100644 --- a/microservices/KonSoft.Admin.HttpApi.Host/appsettings.json +++ b/microservices/KonSoft.Admin.HttpApi.Host/appsettings.json @@ -1,12 +1,12 @@ { "App": { - "CorsOrigins": "https://*.Admin.com,https://localhost:44357" + "CorsOrigins": "https://*.KonSoft.top" }, "ConnectionStrings": { - "Default": "Host=localhost;Port=5432;Database=Admin;User ID=root;Password=myPassword;" + "Default": "Host=1.94.99.47;Port=26666;Database=Clean;User ID=postgres;Password=zzx7845zzx;" }, "Redis": { - "Configuration": "127.0.0.1" + "Configuration": "1.94.99.47:26668" }, "AuthServer": { "Authority": "https://localhost:44397", @@ -15,5 +15,15 @@ }, "StringEncryption": { "DefaultPassPhrase": "g3NdNOyDR9oYj0gK" + }, + "RabbitMQ": { + "Connections": { + "Default": { + "HostName": "1.94.99.47", + "Port": 26667, + "UserName": "admin", + "Password": "zzx7845zzx" + } + } } } diff --git a/modules/admin/src/KonSoft.Admin.Domain.Shared/MultiTenancy/MultiTenancyConsts.cs b/modules/admin/src/KonSoft.Admin.Domain.Shared/MultiTenancy/MultiTenancyConsts.cs deleted file mode 100644 index 1dbf8b3..0000000 --- a/modules/admin/src/KonSoft.Admin.Domain.Shared/MultiTenancy/MultiTenancyConsts.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace KonSoft.Admin.MultiTenancy; - -public static class MultiTenancyConsts -{ - /* Enable/disable multi-tenancy easily in a single point. - * If you will never need to multi-tenancy, you can remove - * related modules and code parts, including this file. - */ - public const bool IsEnabled = true; -} diff --git a/modules/admin/src/KonSoft.Admin.Domain/AdminDomainModule.cs b/modules/admin/src/KonSoft.Admin.Domain/AdminDomainModule.cs index b6bbdb5..c410645 100644 --- a/modules/admin/src/KonSoft.Admin.Domain/AdminDomainModule.cs +++ b/modules/admin/src/KonSoft.Admin.Domain/AdminDomainModule.cs @@ -1,6 +1,5 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; -using KonSoft.Admin.MultiTenancy; using Volo.Abp.AuditLogging; using Volo.Abp.BackgroundJobs; using Volo.Abp.Emailing; @@ -56,10 +55,6 @@ public class AdminDomainModule : AbpModule options.Languages.Add(new LanguageInfo("es", "es", "Español")); }); - Configure(options => - { - options.IsEnabled = MultiTenancyConsts.IsEnabled; - }); #if DEBUG context.Services.Replace(ServiceDescriptor.Singleton()); diff --git a/shared/KonSoft.Shared.Hosting.AspNetCore/AbpSwaggerUIBuilderExtensions.cs b/shared/KonSoft.Shared.Hosting.AspNetCore/AbpSwaggerUIBuilderExtensions.cs new file mode 100644 index 0000000..48a7614 --- /dev/null +++ b/shared/KonSoft.Shared.Hosting.AspNetCore/AbpSwaggerUIBuilderExtensions.cs @@ -0,0 +1,27 @@ +using System; +using Microsoft.AspNetCore.Builder; +using Microsoft.Extensions.DependencyInjection; +using Swashbuckle.AspNetCore.SwaggerUI; +using Volo.Abp.Swashbuckle; + +namespace KonSoft.Shared.Hosting.AspNetCore; + +public static class AbpSwaggerUIBuilderExtensions +{ + public static IApplicationBuilder UseAbpSwaggerWithCustomScriptUI( + this IApplicationBuilder app, + Action? setupAction = null) + { + var resolver = app.ApplicationServices.GetService(); + + return app.UseSwaggerUI(options => + { + options.InjectJavascript("ui/abp.js"); + options.InjectJavascript("ui/abp.swagger.js"); + options.InjectJavascript("ui/requestinterceptor.js"); + options.IndexStream = () => resolver?.Resolver(); + + setupAction?.Invoke(options); + }); + } +} \ No newline at end of file diff --git a/shared/KonSoft.Shared.Hosting.AspNetCore/ApplicationBuilderHelper.cs b/shared/KonSoft.Shared.Hosting.AspNetCore/ApplicationBuilderHelper.cs new file mode 100644 index 0000000..18e2eee --- /dev/null +++ b/shared/KonSoft.Shared.Hosting.AspNetCore/ApplicationBuilderHelper.cs @@ -0,0 +1,24 @@ +using System.Threading.Tasks; +using Microsoft.AspNetCore.Builder; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Serilog; +using Volo.Abp.Modularity; + +namespace KonSoft.Shared.Hosting.AspNetCore; + +public static class ApplicationBuilderHelper +{ + public static async Task BuildApplicationAsync(string[] args) + where TStartupModule : IAbpModule + { + var builder = WebApplication.CreateBuilder(args); + builder.Host + .AddAppSettingsSecretsJson() + .UseAutofac() + .UseSerilog(); + + await builder.AddApplicationAsync(); + return builder.Build(); + } +} \ No newline at end of file diff --git a/shared/KonSoft.Shared.Hosting.AspNetCore/KonSoft.Shared.Hosting.AspNetCore.csproj b/shared/KonSoft.Shared.Hosting.AspNetCore/KonSoft.Shared.Hosting.AspNetCore.csproj new file mode 100644 index 0000000..c60ec75 --- /dev/null +++ b/shared/KonSoft.Shared.Hosting.AspNetCore/KonSoft.Shared.Hosting.AspNetCore.csproj @@ -0,0 +1,36 @@ + + + + net8.0 + KonSoft.Shared.Hosting.AspNetCore + enable + + + + + + + + + + + + + + + + + + + + + true + PreserveNewest + + + + + + + + diff --git a/shared/KonSoft.Shared.Hosting.AspNetCore/KonSoftBrandingProvider.cs b/shared/KonSoft.Shared.Hosting.AspNetCore/KonSoftBrandingProvider.cs new file mode 100644 index 0000000..891b26c --- /dev/null +++ b/shared/KonSoft.Shared.Hosting.AspNetCore/KonSoftBrandingProvider.cs @@ -0,0 +1,11 @@ +using Volo.Abp.DependencyInjection; +using Volo.Abp.Ui.Branding; + +namespace KonSoft.Shared.Hosting.AspNetCore +{ + [Dependency(ReplaceServices = true)] + public class KonSoftBrandingProvider : DefaultBrandingProvider + { + public override string AppName => "KonSoft"; + } +} diff --git a/shared/KonSoft.Shared.Hosting.AspNetCore/KonSoftConsts.cs b/shared/KonSoft.Shared.Hosting.AspNetCore/KonSoftConsts.cs new file mode 100644 index 0000000..62805c4 --- /dev/null +++ b/shared/KonSoft.Shared.Hosting.AspNetCore/KonSoftConsts.cs @@ -0,0 +1,8 @@ +namespace KonSoft.Shared.Hosting.AspNetCore; + +public static class KonSoftConsts +{ + public const string AuthServerAudience = "KonSoft"; + public const string AnonymousUserClaimName = "anonymous_id"; + public const bool MultiTenancyEnabled = true; +} \ No newline at end of file diff --git a/shared/KonSoft.Shared.Hosting.AspNetCore/KonSoftSharedHostingAspNetCoreModule.cs b/shared/KonSoft.Shared.Hosting.AspNetCore/KonSoftSharedHostingAspNetCoreModule.cs new file mode 100644 index 0000000..d9e269d --- /dev/null +++ b/shared/KonSoft.Shared.Hosting.AspNetCore/KonSoftSharedHostingAspNetCoreModule.cs @@ -0,0 +1,32 @@ +using KonSoft.Shared.Localization; +using Volo.Abp.AspNetCore.Serilog; +using Volo.Abp.Modularity; +using Volo.Abp.MultiTenancy; +using Volo.Abp.Swashbuckle; +using Volo.Abp.VirtualFileSystem; + +namespace KonSoft.Shared.Hosting.AspNetCore +{ + [DependsOn( + typeof(KonSoftSharedLocalizationModule), + typeof(KonSoftSharedHostingModule), + typeof(AbpAspNetCoreSerilogModule), + typeof(AbpSwashbuckleModule), + typeof(AbpMultiTenancyModule) + )] + public class KonSoftSharedHostingAspNetCoreModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.FileSets.AddEmbedded("KonSoft.Shared.Hosting.AspNetCore"); + }); + + Configure(options => + { + options.IsEnabled = KonSoftConsts.MultiTenancyEnabled; + }); + } + } +} diff --git a/shared/KonSoft.Shared.Hosting.AspNetCore/SerilogConfigurationHelper.cs b/shared/KonSoft.Shared.Hosting.AspNetCore/SerilogConfigurationHelper.cs new file mode 100644 index 0000000..862c314 --- /dev/null +++ b/shared/KonSoft.Shared.Hosting.AspNetCore/SerilogConfigurationHelper.cs @@ -0,0 +1,24 @@ +using Serilog; +using Serilog.Events; + +namespace KonSoft.Shared.Hosting.AspNetCore; + +public static class SerilogConfigurationHelper +{ + public static void Configure(string applicationName) + { + Log.Logger = new LoggerConfiguration() +#if DEBUG + .MinimumLevel.Debug() +#else + .MinimumLevel.Information() +#endif + .MinimumLevel.Override("Microsoft", LogEventLevel.Information) + .MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning) + .Enrich.FromLogContext() + .Enrich.WithProperty("Application", $"{applicationName}") + .WriteTo.Async(c => c.File("Logs/logs.txt")) + .WriteTo.Async(c => c.Console()) + .CreateLogger(); + } +} \ No newline at end of file diff --git a/shared/KonSoft.Shared.Hosting.AspNetCore/SwaggerConfigurationHelper.cs b/shared/KonSoft.Shared.Hosting.AspNetCore/SwaggerConfigurationHelper.cs new file mode 100644 index 0000000..d2a0537 --- /dev/null +++ b/shared/KonSoft.Shared.Hosting.AspNetCore/SwaggerConfigurationHelper.cs @@ -0,0 +1,32 @@ +using Microsoft.Extensions.DependencyInjection; +using Microsoft.OpenApi.Models; +using Volo.Abp.Modularity; + +namespace KonSoft.Shared.Hosting.AspNetCore; + +public static class SwaggerConfigurationHelper +{ + public static void ConfigureWithOidc( + ServiceConfigurationContext context, + string authority, + string[] scopes, + string apiTitle, + string apiVersion = "v1", + string apiName = "v1", + string[]? flows = null, + string? discoveryEndpoint = null + ) + { + context.Services.AddAbpSwaggerGenWithOidc( + authority: authority, + scopes: scopes, + flows: flows, + discoveryEndpoint: discoveryEndpoint, + options => + { + options.SwaggerDoc(apiName, new OpenApiInfo { Title = apiTitle, Version = apiVersion }); + options.DocInclusionPredicate((docName, description) => true); + options.CustomSchemaIds(type => type.FullName); + }); + } +} \ No newline at end of file diff --git a/shared/KonSoft.Shared.Hosting.AspNetCore/wwwroot/swagger/ui/requestinterceptor.js b/shared/KonSoft.Shared.Hosting.AspNetCore/wwwroot/swagger/ui/requestinterceptor.js new file mode 100644 index 0000000..963782e --- /dev/null +++ b/shared/KonSoft.Shared.Hosting.AspNetCore/wwwroot/swagger/ui/requestinterceptor.js @@ -0,0 +1,9 @@ +const originalFetch = window.fetch; + +window.fetch = function (input, init) { + if (init !== undefined && init.headers['RequestVerificationToken'] !== undefined) { + delete init.headers['RequestVerificationToken']; + } + + return originalFetch.apply(this, arguments); +}; \ No newline at end of file diff --git a/shared/KonSoft.Shared.Hosting.Gateways/Class1.cs b/shared/KonSoft.Shared.Hosting.Gateways/Class1.cs new file mode 100644 index 0000000..1570854 --- /dev/null +++ b/shared/KonSoft.Shared.Hosting.Gateways/Class1.cs @@ -0,0 +1,7 @@ +namespace KonSoft.Shared.Hosting.Gateways +{ + public class Class1 + { + + } +} diff --git a/shared/KonSoft.Shared/KonSoft.Shared.csproj b/shared/KonSoft.Shared.Hosting.Gateways/KonSoft.Shared.Hosting.Gateways.csproj similarity index 58% rename from shared/KonSoft.Shared/KonSoft.Shared.csproj rename to shared/KonSoft.Shared.Hosting.Gateways/KonSoft.Shared.Hosting.Gateways.csproj index fa71b7a..51a05d1 100644 --- a/shared/KonSoft.Shared/KonSoft.Shared.csproj +++ b/shared/KonSoft.Shared.Hosting.Gateways/KonSoft.Shared.Hosting.Gateways.csproj @@ -2,8 +2,8 @@ net8.0 - enable - enable + KonSoft.Shared.Hosting.Gateways + enable diff --git a/shared/KonSoft.Shared.Hosting.Microservices/KonSoft.Shared.Hosting.Microservices.csproj b/shared/KonSoft.Shared.Hosting.Microservices/KonSoft.Shared.Hosting.Microservices.csproj new file mode 100644 index 0000000..1a1f9b2 --- /dev/null +++ b/shared/KonSoft.Shared.Hosting.Microservices/KonSoft.Shared.Hosting.Microservices.csproj @@ -0,0 +1,27 @@ + + + + net8.0 + KonSoft.Shared.Hosting.Microservices + enable + + + + + + + + + + + + + + + + + + + + + diff --git a/shared/KonSoft.Shared.Hosting.Microservices/KonSoftSharedHostingMicroservivesModule.cs b/shared/KonSoft.Shared.Hosting.Microservices/KonSoftSharedHostingMicroservivesModule.cs new file mode 100644 index 0000000..b696d14 --- /dev/null +++ b/shared/KonSoft.Shared.Hosting.Microservices/KonSoftSharedHostingMicroservivesModule.cs @@ -0,0 +1,100 @@ +using KonSoft.Shared.Hosting.AspNetCore; +using Medallion.Threading; +using Medallion.Threading.Redis; +using Microsoft.AspNetCore.Authentication.JwtBearer; +using Microsoft.AspNetCore.DataProtection; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using StackExchange.Redis; +using System; +using System.Linq; +using Microsoft.AspNetCore.Cors; +using Volo.Abp.AspNetCore.Authentication.JwtBearer; +using Volo.Abp.BackgroundJobs.RabbitMQ; +using Volo.Abp.Caching; +using Volo.Abp.Caching.StackExchangeRedis; +using Volo.Abp.DistributedLocking; +using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.EventBus.RabbitMq; +using Volo.Abp.Modularity; +using Volo.Abp.Security.Claims; + +namespace KonSoft.Shared.Hosting.Microservices +{ + [DependsOn( + typeof(KonSoftSharedHostingAspNetCoreModule), + typeof(AbpBackgroundJobsRabbitMqModule), + typeof(AbpAspNetCoreAuthenticationJwtBearerModule), + typeof(AbpEventBusRabbitMqModule), + typeof(AbpCachingStackExchangeRedisModule), + typeof(AbpDistributedLockingModule), + typeof(AbpEntityFrameworkCoreModule) + )] + public class KonSoftSharedHostingMicroservicesModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + var configuration = context.Services.GetConfiguration(); + var hostingEnvironment = context.Services.GetHostingEnvironment(); + + ConfigureCache(); + ConfigureDataProtection(context, configuration); + ConfigureAuthentication(context, configuration); + ConfigureCors(context, configuration); + } + + private void ConfigureCache() + { + Configure(options => { options.KeyPrefix = "KonSoft:"; }); + } + + private void ConfigureDataProtection( + ServiceConfigurationContext context, + IConfiguration configuration) + { + context.Services.AddDataProtection().SetApplicationName("KonSoft") + .PersistKeysToStackExchangeRedis(ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]!), + "KonSoft-Protection-Keys"); + + context.Services.AddSingleton(_ => + new RedisDistributedSynchronizationProvider(ConnectionMultiplexer + .Connect(configuration["Redis:Configuration"]!).GetDatabase())); + } + + private void ConfigureAuthentication(ServiceConfigurationContext context, IConfiguration configuration) + { + context.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) + .AddAbpJwtBearer(options => + { + options.Authority = configuration["AuthServer:Authority"]; + options.RequireHttpsMetadata = configuration.GetValue("AuthServer:RequireHttpsMetadata"); + options.Audience = KonSoftConsts.AuthServerAudience; + }); + + context.Services.Configure(options => + { + options.IsDynamicClaimsEnabled = true; + }); + } + + private void ConfigureCors(ServiceConfigurationContext context, IConfiguration configuration) + { + context.Services.AddCors(options => + { + options.AddDefaultPolicy(builder => + { + builder + .WithOrigins(configuration["App:CorsOrigins"]? + .Split(",", StringSplitOptions.RemoveEmptyEntries) + .Select(o => o.RemovePostFix("/")) + .ToArray() ?? []) + .WithAbpExposedHeaders() + .SetIsOriginAllowedToAllowWildcardSubdomains() + .AllowAnyHeader() + .AllowAnyMethod() + .AllowCredentials(); + }); + }); + } + } +} diff --git a/shared/KonSoft.Shared.Hosting/KonSoft.Shared.Hosting.csproj b/shared/KonSoft.Shared.Hosting/KonSoft.Shared.Hosting.csproj new file mode 100644 index 0000000..fda1511 --- /dev/null +++ b/shared/KonSoft.Shared.Hosting/KonSoft.Shared.Hosting.csproj @@ -0,0 +1,21 @@ + + + + net8.0 + KonSoft.Shared.Hosting + enable + + + + + + + + + + + + + + + diff --git a/shared/KonSoft.Shared.Hosting/KonSoftSharedHostingModule.cs b/shared/KonSoft.Shared.Hosting/KonSoftSharedHostingModule.cs new file mode 100644 index 0000000..ab097b3 --- /dev/null +++ b/shared/KonSoft.Shared.Hosting/KonSoftSharedHostingModule.cs @@ -0,0 +1,21 @@ +using Volo.Abp.Autofac; +using Volo.Abp.Data; +using Volo.Abp.Modularity; + +namespace KonSoft.Shared.Hosting +{ + [DependsOn( + typeof(AbpAutofacModule), + typeof(AbpDataModule) + )] + public class KonSoftSharedHostingModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + // TODO Mapping DbConnections + }); + } + } +} diff --git a/shared/KonSoft.Shared.Localization/KonSoft.Shared.Localization.csproj b/shared/KonSoft.Shared.Localization/KonSoft.Shared.Localization.csproj new file mode 100644 index 0000000..65d9433 --- /dev/null +++ b/shared/KonSoft.Shared.Localization/KonSoft.Shared.Localization.csproj @@ -0,0 +1,24 @@ + + + + net8.0 + KonSoft.Shared.Localization + enable + + + + + + + + + + + + + + + + + + diff --git a/shared/KonSoft.Shared.Localization/KonSoftSharedLocalizationModule.cs b/shared/KonSoft.Shared.Localization/KonSoftSharedLocalizationModule.cs new file mode 100644 index 0000000..0d8a0bd --- /dev/null +++ b/shared/KonSoft.Shared.Localization/KonSoftSharedLocalizationModule.cs @@ -0,0 +1,35 @@ +using KonSoft.Shared.Localization.Localization; +using Volo.Abp.Localization; +using Volo.Abp.Modularity; +using Volo.Abp.Validation; +using Volo.Abp.Validation.Localization; +using Volo.Abp.VirtualFileSystem; + +namespace KonSoft.Shared.Localization +{ + + [DependsOn( + typeof(AbpValidationModule) + )] + public class KonSoftSharedLocalizationModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + + Configure(options => + { + options.Resources + .Add("en") + .AddBaseTypes( + typeof(AbpValidationResource) + ).AddVirtualJson("/Localization/KonSoft"); + + options.DefaultResourceType = typeof(KonSoftResource); + }); + } + } +} diff --git a/shared/KonSoft.Shared.Localization/Localization/KonSoft/en.json b/shared/KonSoft.Shared.Localization/Localization/KonSoft/en.json new file mode 100644 index 0000000..0beddd9 --- /dev/null +++ b/shared/KonSoft.Shared.Localization/Localization/KonSoft/en.json @@ -0,0 +1,9 @@ +{ + "culture": "en", + "texts": { + "AppName": "Admin", + "Menu:Home": "Home", + "Welcome": "Welcome", + "LongWelcomeMessage": "Welcome to the application. This is a startup project based on the ABP framework. For more information, visit abp.io." + } +} diff --git a/shared/KonSoft.Shared.Localization/Localization/KonSoft/zh-Hans.json b/shared/KonSoft.Shared.Localization/Localization/KonSoft/zh-Hans.json new file mode 100644 index 0000000..4e50081 --- /dev/null +++ b/shared/KonSoft.Shared.Localization/Localization/KonSoft/zh-Hans.json @@ -0,0 +1,9 @@ +{ + "culture": "zh-Hans", + "texts": { + "AppName": "Admin", + "Menu:Home": "首页", + "Welcome": "欢迎", + "LongWelcomeMessage": "欢迎使用本应用程序。这是一个基于 ABP 框架的启动项目。更多信息,请访问 abp.io。" + } +} diff --git a/shared/KonSoft.Shared.Localization/Localization/KonSoftResource.cs b/shared/KonSoft.Shared.Localization/Localization/KonSoftResource.cs new file mode 100644 index 0000000..233da77 --- /dev/null +++ b/shared/KonSoft.Shared.Localization/Localization/KonSoftResource.cs @@ -0,0 +1,9 @@ +using Volo.Abp.Localization; + +namespace KonSoft.Shared.Localization.Localization +{ + [LocalizationResourceName("KonSoft")] + public class KonSoftResource + { + } +} diff --git a/shared/KonSoft.Shared/Class1.cs b/shared/KonSoft.Shared/Class1.cs deleted file mode 100644 index 3a4e8b4..0000000 --- a/shared/KonSoft.Shared/Class1.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace KonSoft.Shared -{ - public class Class1 - { - - } -}