From 4efb3aafa69f09bbd6ff272d7ad3a9d987614157 Mon Sep 17 00:00:00 2001 From: NoahLan <6995syu@163.com> Date: Thu, 22 Feb 2024 17:46:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=A7=9F=E6=88=B7=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=EF=BC=8C=E5=AE=A1=E8=AE=A1=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E3=80=82=20=E8=BF=90=E8=A1=8C=E6=B5=8B=E8=AF=95OK?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NPin.sln | 67 +- .../SwaggerAddExtensions.cs | 10 +- .../NPin.Framework.Caching.FreeRedis.csproj | 2 +- .../NPin.Framework.Core.csproj | 2 +- ...Framework.Ddd.Application.Contracts.csproj | 2 +- .../NPin.Framework.Ddd.Application.csproj | 2 +- .../NPin.Framework.Mapster.csproj | 2 +- .../NPinFrameworkMapsterModule.cs | 6 +- .../DbConnOptions.cs | 10 +- ...Framework.SqlSugarCore.Abstractions.csproj | 2 +- .../UnitOfWorkSqlSugarDbContextProvider.cs | 4 +- module/Class1.cs | 5 - .../Consts/AuditLogActionConsts.cs | 0 .../Consts/AuditLogConsts.cs | 0 .../Consts/EntityChangeConsts.cs | 0 .../Consts/EntityPropertyChangeConsts.cs | 0 ...ramework.AuditLogging.Domain.Shared.csproj | 2 +- ...FrameworkAuditLoggingDomainSharedModule.cs | 0 .../AuditLogInfoToAuditLogConverter.cs | 0 .../AuditingStore.cs | 0 .../Entities/AuditLogActionEntity.cs | 0 .../Entities/AuditLogAggregateRoot.cs | 0 .../Entities/EntityChangeEntity.cs | 0 .../Entities/EntityPropertyChangeEntity.cs | 0 .../Events/EntityChangeWithUsername.cs | 0 .../IAuditLogInfoToAuditLogConverter.cs | 0 .../NPin.Framework.AuditLogging.Domain.csproj | 6 +- .../NPinFrameworkAuditLoggingDomainModule.cs | 0 .../Repositories/IAuditLogRepository.cs | 0 ...Framework.AuditLogging.SqlSugarCore.csproj | 4 +- ...FrameworkAuditLoggingSqlSugarCoreModule.cs | 0 .../Repositories/AuditLogRepository.cs | 6 +- module/module.csproj | 9 - .../Dtos/TenantCreateInput.cs | 11 + .../Dtos/TenantGetListInput.cs | 12 + .../Dtos/TenantGetListOutputDto.cs | 13 + .../Dtos/TenantGetOutputDto.cs | 13 + .../Dtos/TenantSelectOutputDto.cs | 8 + .../Dtos/TenantUpdateInput.cs | 11 + .../ITenantService.cs | 12 + ...antManagement.Application.Contracts.csproj | 19 + ...antManagementApplicationContractsModule.cs | 13 + ...mework.TenantManagement.Application.csproj | 16 + ...meworkTenantManagementApplicationModule.cs | 9 + .../TenantService.cs | 143 ++ .../ITenantRepository.cs | 13 + ...n.Framework.TenantManagement.Domain.csproj | 19 + ...inFrameworkTenantManagementDomainModule.cs | 26 + ...NPinMultiTenantConnectionStringResolver.cs | 152 ++ .../SqlSugarTenantStore.cs | 124 ++ .../TenantAggregateRoot.cs | 50 + .../TenantCacheItem.cs | 34 + .../TenantManagementExtensions.cs | 17 + ...ework.TenantManagement.SqlSugarCore.csproj | 15 + ...eworkTenantManagementSqlSugarCoreModule.cs | 10 + .../TenantRepository.cs | 35 + .../NPin.Application.Contracts.csproj | 1 + .../NPinApplicationContractsModule.cs | 7 +- src/NPin.Application/NPin.Application.csproj | 5 + src/NPin.Application/NPinApplicationModule.cs | 10 +- .../NPin.Domain.Shared.csproj | 7 +- .../NPinDomainSharedModule.cs | 9 +- src/NPin.Domain/NPin.Domain.csproj | 7 + src/NPin.Domain/NPinDomainModule.cs | 8 +- .../NPin.SqlSugarCore.csproj | 3 +- .../NPinSqlSugarCoreModule.cs | 4 +- src/NPin.Web/NPin.Web.csproj | 17 +- src/NPin.Web/NPin.http | 6 - src/NPin.Web/NPinWebModule.cs | 11 +- src/NPin.Web/Properties/launchSettings.json | 32 +- src/NPin.Web/appsettings.json | 48 +- src/NPin.Web/logs/error-20240222.txt | 327 +++++ src/NPin.Web/logs/log-20240222.txt | 1300 +++++++++++++++++ src/NPin.Web/np-dev.db | Bin 0 -> 69632 bytes 74 files changed, 2594 insertions(+), 124 deletions(-) delete mode 100644 module/Class1.cs rename module/{ => audit-logging}/NPin.Framework.AuditLogging.Domain.Shared/Consts/AuditLogActionConsts.cs (100%) rename module/{ => audit-logging}/NPin.Framework.AuditLogging.Domain.Shared/Consts/AuditLogConsts.cs (100%) rename module/{ => audit-logging}/NPin.Framework.AuditLogging.Domain.Shared/Consts/EntityChangeConsts.cs (100%) rename module/{ => audit-logging}/NPin.Framework.AuditLogging.Domain.Shared/Consts/EntityPropertyChangeConsts.cs (100%) rename module/{ => audit-logging}/NPin.Framework.AuditLogging.Domain.Shared/NPin.Framework.AuditLogging.Domain.Shared.csproj (95%) rename module/{ => audit-logging}/NPin.Framework.AuditLogging.Domain.Shared/NPinFrameworkAuditLoggingDomainSharedModule.cs (100%) rename module/{ => audit-logging}/NPin.Framework.AuditLogging.Domain/AuditLogInfoToAuditLogConverter.cs (100%) rename module/{ => audit-logging}/NPin.Framework.AuditLogging.Domain/AuditingStore.cs (100%) rename module/{ => audit-logging}/NPin.Framework.AuditLogging.Domain/Entities/AuditLogActionEntity.cs (100%) rename module/{ => audit-logging}/NPin.Framework.AuditLogging.Domain/Entities/AuditLogAggregateRoot.cs (100%) rename module/{ => audit-logging}/NPin.Framework.AuditLogging.Domain/Entities/EntityChangeEntity.cs (100%) rename module/{ => audit-logging}/NPin.Framework.AuditLogging.Domain/Entities/EntityPropertyChangeEntity.cs (100%) rename module/{ => audit-logging}/NPin.Framework.AuditLogging.Domain/Events/EntityChangeWithUsername.cs (100%) rename module/{ => audit-logging}/NPin.Framework.AuditLogging.Domain/IAuditLogInfoToAuditLogConverter.cs (100%) rename module/{ => audit-logging}/NPin.Framework.AuditLogging.Domain/NPin.Framework.AuditLogging.Domain.csproj (77%) rename module/{ => audit-logging}/NPin.Framework.AuditLogging.Domain/NPinFrameworkAuditLoggingDomainModule.cs (100%) rename module/{ => audit-logging}/NPin.Framework.AuditLogging.Domain/Repositories/IAuditLogRepository.cs (100%) rename module/{ => audit-logging}/NPin.Framework.AuditLogging.SqlSugarCore/NPin.Framework.AuditLogging.SqlSugarCore.csproj (62%) rename module/{ => audit-logging}/NPin.Framework.AuditLogging.SqlSugarCore/NPinFrameworkAuditLoggingSqlSugarCoreModule.cs (100%) rename module/{ => audit-logging}/NPin.Framework.AuditLogging.SqlSugarCore/Repositories/AuditLogRepository.cs (98%) delete mode 100644 module/module.csproj create mode 100644 module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/Dtos/TenantCreateInput.cs create mode 100644 module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/Dtos/TenantGetListInput.cs create mode 100644 module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/Dtos/TenantGetListOutputDto.cs create mode 100644 module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/Dtos/TenantGetOutputDto.cs create mode 100644 module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/Dtos/TenantSelectOutputDto.cs create mode 100644 module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/Dtos/TenantUpdateInput.cs create mode 100644 module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/ITenantService.cs create mode 100644 module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/NPin.Framework.TenantManagement.Application.Contracts.csproj create mode 100644 module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/NPinFrameworkTenantManagementApplicationContractsModule.cs create mode 100644 module/tenant-management/NPin.Framework.TenantManagement.Application/NPin.Framework.TenantManagement.Application.csproj create mode 100644 module/tenant-management/NPin.Framework.TenantManagement.Application/NPinFrameworkTenantManagementApplicationModule.cs create mode 100644 module/tenant-management/NPin.Framework.TenantManagement.Application/TenantService.cs create mode 100644 module/tenant-management/NPin.Framework.TenantManagement.Domain/ITenantRepository.cs create mode 100644 module/tenant-management/NPin.Framework.TenantManagement.Domain/NPin.Framework.TenantManagement.Domain.csproj create mode 100644 module/tenant-management/NPin.Framework.TenantManagement.Domain/NPinFrameworkTenantManagementDomainModule.cs create mode 100644 module/tenant-management/NPin.Framework.TenantManagement.Domain/NPinMultiTenantConnectionStringResolver.cs create mode 100644 module/tenant-management/NPin.Framework.TenantManagement.Domain/SqlSugarTenantStore.cs create mode 100644 module/tenant-management/NPin.Framework.TenantManagement.Domain/TenantAggregateRoot.cs create mode 100644 module/tenant-management/NPin.Framework.TenantManagement.Domain/TenantCacheItem.cs create mode 100644 module/tenant-management/NPin.Framework.TenantManagement.Domain/TenantManagementExtensions.cs create mode 100644 module/tenant-management/NPin.Framework.TenantManagement.SqlSugarCore/NPin.Framework.TenantManagement.SqlSugarCore.csproj create mode 100644 module/tenant-management/NPin.Framework.TenantManagement.SqlSugarCore/NPinFrameworkTenantManagementSqlSugarCoreModule.cs create mode 100644 module/tenant-management/NPin.Framework.TenantManagement.SqlSugarCore/TenantRepository.cs delete mode 100644 src/NPin.Web/NPin.http create mode 100644 src/NPin.Web/logs/error-20240222.txt create mode 100644 src/NPin.Web/logs/log-20240222.txt create mode 100644 src/NPin.Web/np-dev.db diff --git a/NPin.sln b/NPin.sln index 433a4d8..4ca8e51 100644 --- a/NPin.sln +++ b/NPin.sln @@ -48,11 +48,21 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "audit-logging", "audit-logg EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "upms", "upms", "{CA0606BE-4146-4390-86CD-AD92FC161A9E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NPin.Framework.AuditLogging.Domain.Shared", "module\NPin.Framework.AuditLogging.Domain.Shared\NPin.Framework.AuditLogging.Domain.Shared.csproj", "{67D8E078-69EC-4D2C-8B12-BDB66FB45B58}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tenant-management", "tenant-management", "{FFB03EF5-B008-4F84-83D8-2F4B5D821251}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NPin.Framework.AuditLogging.Domain", "module\NPin.Framework.AuditLogging.Domain\NPin.Framework.AuditLogging.Domain.csproj", "{CF3EECF5-EE94-47F4-978B-2F648B02F99F}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NPin.Framework.AuditLogging.Domain", "module\audit-logging\NPin.Framework.AuditLogging.Domain\NPin.Framework.AuditLogging.Domain.csproj", "{734EF33E-028A-44C3-B83F-13DBFA8AC117}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NPin.Framework.AuditLogging.SqlSugarCore", "module\NPin.Framework.AuditLogging.SqlSugarCore\NPin.Framework.AuditLogging.SqlSugarCore.csproj", "{E50D68D7-8A0C-451D-9344-EE022054E31E}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NPin.Framework.AuditLogging.Domain.Shared", "module\audit-logging\NPin.Framework.AuditLogging.Domain.Shared\NPin.Framework.AuditLogging.Domain.Shared.csproj", "{70685213-B0C0-4589-B9ED-A67838227705}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NPin.Framework.AuditLogging.SqlSugarCore", "module\audit-logging\NPin.Framework.AuditLogging.SqlSugarCore\NPin.Framework.AuditLogging.SqlSugarCore.csproj", "{6253E408-8F24-4FCA-8EDA-F7FCAFFC916C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NPin.Framework.TenantManagement.Application", "module\tenant-management\NPin.Framework.TenantManagement.Application\NPin.Framework.TenantManagement.Application.csproj", "{BC0B626C-BF67-4279-8EAB-66CF0DA912AE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NPin.Framework.TenantManagement.Application.Contracts", "module\tenant-management\NPin.Framework.TenantManagement.Application.Contracts\NPin.Framework.TenantManagement.Application.Contracts.csproj", "{FAB3D7AE-2260-4DC1-B2BB-E26C540056BF}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NPin.Framework.TenantManagement.Domain", "module\tenant-management\NPin.Framework.TenantManagement.Domain\NPin.Framework.TenantManagement.Domain.csproj", "{6F3DF341-F4BB-416A-8772-F68B4626C0C8}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NPin.Framework.TenantManagement.SqlSugarCore", "module\tenant-management\NPin.Framework.TenantManagement.SqlSugarCore\NPin.Framework.TenantManagement.SqlSugarCore.csproj", "{9B6CAF84-D53C-4595-93B7-231E771FAED3}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -120,18 +130,34 @@ Global {DC8E2E59-589F-4521-95E2-9CE7E1DD5541}.Debug|Any CPU.Build.0 = Debug|Any CPU {DC8E2E59-589F-4521-95E2-9CE7E1DD5541}.Release|Any CPU.ActiveCfg = Release|Any CPU {DC8E2E59-589F-4521-95E2-9CE7E1DD5541}.Release|Any CPU.Build.0 = Release|Any CPU - {67D8E078-69EC-4D2C-8B12-BDB66FB45B58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {67D8E078-69EC-4D2C-8B12-BDB66FB45B58}.Debug|Any CPU.Build.0 = Debug|Any CPU - {67D8E078-69EC-4D2C-8B12-BDB66FB45B58}.Release|Any CPU.ActiveCfg = Release|Any CPU - {67D8E078-69EC-4D2C-8B12-BDB66FB45B58}.Release|Any CPU.Build.0 = Release|Any CPU - {CF3EECF5-EE94-47F4-978B-2F648B02F99F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CF3EECF5-EE94-47F4-978B-2F648B02F99F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CF3EECF5-EE94-47F4-978B-2F648B02F99F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CF3EECF5-EE94-47F4-978B-2F648B02F99F}.Release|Any CPU.Build.0 = Release|Any CPU - {E50D68D7-8A0C-451D-9344-EE022054E31E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E50D68D7-8A0C-451D-9344-EE022054E31E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E50D68D7-8A0C-451D-9344-EE022054E31E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E50D68D7-8A0C-451D-9344-EE022054E31E}.Release|Any CPU.Build.0 = Release|Any CPU + {734EF33E-028A-44C3-B83F-13DBFA8AC117}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {734EF33E-028A-44C3-B83F-13DBFA8AC117}.Debug|Any CPU.Build.0 = Debug|Any CPU + {734EF33E-028A-44C3-B83F-13DBFA8AC117}.Release|Any CPU.ActiveCfg = Release|Any CPU + {734EF33E-028A-44C3-B83F-13DBFA8AC117}.Release|Any CPU.Build.0 = Release|Any CPU + {70685213-B0C0-4589-B9ED-A67838227705}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {70685213-B0C0-4589-B9ED-A67838227705}.Debug|Any CPU.Build.0 = Debug|Any CPU + {70685213-B0C0-4589-B9ED-A67838227705}.Release|Any CPU.ActiveCfg = Release|Any CPU + {70685213-B0C0-4589-B9ED-A67838227705}.Release|Any CPU.Build.0 = Release|Any CPU + {6253E408-8F24-4FCA-8EDA-F7FCAFFC916C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6253E408-8F24-4FCA-8EDA-F7FCAFFC916C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6253E408-8F24-4FCA-8EDA-F7FCAFFC916C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6253E408-8F24-4FCA-8EDA-F7FCAFFC916C}.Release|Any CPU.Build.0 = Release|Any CPU + {BC0B626C-BF67-4279-8EAB-66CF0DA912AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BC0B626C-BF67-4279-8EAB-66CF0DA912AE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BC0B626C-BF67-4279-8EAB-66CF0DA912AE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BC0B626C-BF67-4279-8EAB-66CF0DA912AE}.Release|Any CPU.Build.0 = Release|Any CPU + {FAB3D7AE-2260-4DC1-B2BB-E26C540056BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FAB3D7AE-2260-4DC1-B2BB-E26C540056BF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FAB3D7AE-2260-4DC1-B2BB-E26C540056BF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FAB3D7AE-2260-4DC1-B2BB-E26C540056BF}.Release|Any CPU.Build.0 = Release|Any CPU + {6F3DF341-F4BB-416A-8772-F68B4626C0C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6F3DF341-F4BB-416A-8772-F68B4626C0C8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6F3DF341-F4BB-416A-8772-F68B4626C0C8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6F3DF341-F4BB-416A-8772-F68B4626C0C8}.Release|Any CPU.Build.0 = Release|Any CPU + {9B6CAF84-D53C-4595-93B7-231E771FAED3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9B6CAF84-D53C-4595-93B7-231E771FAED3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9B6CAF84-D53C-4595-93B7-231E771FAED3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9B6CAF84-D53C-4595-93B7-231E771FAED3}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(NestedProjects) = preSolution {088B4948-AE5B-45B3-A9FA-B853671CFA05} = {F2A0A89E-A2F9-48CF-AD38-0318B5ACD11C} @@ -151,8 +177,13 @@ Global {DC8E2E59-589F-4521-95E2-9CE7E1DD5541} = {86F61EBB-4ACC-459C-AB3C-C8D486C3017D} {29EA07EB-E1D2-4BCA-9EA4-D69E28F14978} = {EEAD0AD4-0F90-46D9-A775-D88AE07E2869} {CA0606BE-4146-4390-86CD-AD92FC161A9E} = {EEAD0AD4-0F90-46D9-A775-D88AE07E2869} - {67D8E078-69EC-4D2C-8B12-BDB66FB45B58} = {29EA07EB-E1D2-4BCA-9EA4-D69E28F14978} - {CF3EECF5-EE94-47F4-978B-2F648B02F99F} = {29EA07EB-E1D2-4BCA-9EA4-D69E28F14978} - {E50D68D7-8A0C-451D-9344-EE022054E31E} = {29EA07EB-E1D2-4BCA-9EA4-D69E28F14978} + {FFB03EF5-B008-4F84-83D8-2F4B5D821251} = {EEAD0AD4-0F90-46D9-A775-D88AE07E2869} + {734EF33E-028A-44C3-B83F-13DBFA8AC117} = {29EA07EB-E1D2-4BCA-9EA4-D69E28F14978} + {70685213-B0C0-4589-B9ED-A67838227705} = {29EA07EB-E1D2-4BCA-9EA4-D69E28F14978} + {6253E408-8F24-4FCA-8EDA-F7FCAFFC916C} = {29EA07EB-E1D2-4BCA-9EA4-D69E28F14978} + {BC0B626C-BF67-4279-8EAB-66CF0DA912AE} = {FFB03EF5-B008-4F84-83D8-2F4B5D821251} + {FAB3D7AE-2260-4DC1-B2BB-E26C540056BF} = {FFB03EF5-B008-4F84-83D8-2F4B5D821251} + {6F3DF341-F4BB-416A-8772-F68B4626C0C8} = {FFB03EF5-B008-4F84-83D8-2F4B5D821251} + {9B6CAF84-D53C-4595-93B7-231E771FAED3} = {FFB03EF5-B008-4F84-83D8-2F4B5D821251} EndGlobalSection EndGlobal diff --git a/framework/NPin.Framework.AspNetCore/Microsoft/Extensions/DependencyInjection/SwaggerAddExtensions.cs b/framework/NPin.Framework.AspNetCore/Microsoft/Extensions/DependencyInjection/SwaggerAddExtensions.cs index a6ee91d..d2d96a2 100644 --- a/framework/NPin.Framework.AspNetCore/Microsoft/Extensions/DependencyInjection/SwaggerAddExtensions.cs +++ b/framework/NPin.Framework.AspNetCore/Microsoft/Extensions/DependencyInjection/SwaggerAddExtensions.cs @@ -12,7 +12,7 @@ namespace NPin.Framework.AspNetCore.Microsoft.Extensions.DependencyInjection; public static class SwaggerAddExtensions { - public static IServiceCollection AddNPinSwaggerGen(this IServiceCollection services, + public static IServiceCollection AddNPinSwaggerGen(this IServiceCollection services, Action? action = null) { var serviceProvider = services.BuildServiceProvider(); @@ -52,8 +52,10 @@ public static class SwaggerAddExtensions return false; }); - options.CustomSchemaIds(type => type.FullName); - var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location); + // options.CustomSchemaIds(type => type.Name); + options.CustomSchemaIds(type => $"{type.Namespace}.{type.Name}"); + + var basePath = Path.GetDirectoryName(typeof(TProgram).Assembly.Location); if (basePath is not null) { foreach (var item in Directory.GetFiles(basePath, "*.xml")) @@ -62,7 +64,7 @@ public static class SwaggerAddExtensions } } - options.AddSecurityDefinition("JWT", new OpenApiSecurityScheme + options.AddSecurityDefinition("JwtBearer", new OpenApiSecurityScheme { Description = "输入JWT-Token", Name = "Authorization", diff --git a/framework/NPin.Framework.Caching.FreeRedis/NPin.Framework.Caching.FreeRedis.csproj b/framework/NPin.Framework.Caching.FreeRedis/NPin.Framework.Caching.FreeRedis.csproj index 88b7e75..6171da2 100644 --- a/framework/NPin.Framework.Caching.FreeRedis/NPin.Framework.Caching.FreeRedis.csproj +++ b/framework/NPin.Framework.Caching.FreeRedis/NPin.Framework.Caching.FreeRedis.csproj @@ -4,7 +4,7 @@ - + diff --git a/framework/NPin.Framework.Core/NPin.Framework.Core.csproj b/framework/NPin.Framework.Core/NPin.Framework.Core.csproj index 7f1da06..0a3e1af 100644 --- a/framework/NPin.Framework.Core/NPin.Framework.Core.csproj +++ b/framework/NPin.Framework.Core/NPin.Framework.Core.csproj @@ -4,6 +4,6 @@ - + diff --git a/framework/NPin.Framework.Ddd.Application.Contracts/NPin.Framework.Ddd.Application.Contracts.csproj b/framework/NPin.Framework.Ddd.Application.Contracts/NPin.Framework.Ddd.Application.Contracts.csproj index ee3bfa3..5b87668 100644 --- a/framework/NPin.Framework.Ddd.Application.Contracts/NPin.Framework.Ddd.Application.Contracts.csproj +++ b/framework/NPin.Framework.Ddd.Application.Contracts/NPin.Framework.Ddd.Application.Contracts.csproj @@ -1,7 +1,7 @@  - + diff --git a/framework/NPin.Framework.Ddd.Application/NPin.Framework.Ddd.Application.csproj b/framework/NPin.Framework.Ddd.Application/NPin.Framework.Ddd.Application.csproj index 8dd8ecc..40c3e66 100644 --- a/framework/NPin.Framework.Ddd.Application/NPin.Framework.Ddd.Application.csproj +++ b/framework/NPin.Framework.Ddd.Application/NPin.Framework.Ddd.Application.csproj @@ -9,7 +9,7 @@ - + diff --git a/framework/NPin.Framework.Mapster/NPin.Framework.Mapster.csproj b/framework/NPin.Framework.Mapster/NPin.Framework.Mapster.csproj index 066d284..483ab23 100644 --- a/framework/NPin.Framework.Mapster/NPin.Framework.Mapster.csproj +++ b/framework/NPin.Framework.Mapster/NPin.Framework.Mapster.csproj @@ -3,7 +3,7 @@ - + diff --git a/framework/NPin.Framework.Mapster/NPinFrameworkMapsterModule.cs b/framework/NPin.Framework.Mapster/NPinFrameworkMapsterModule.cs index 3e83c80..0d11597 100644 --- a/framework/NPin.Framework.Mapster/NPinFrameworkMapsterModule.cs +++ b/framework/NPin.Framework.Mapster/NPinFrameworkMapsterModule.cs @@ -1,11 +1,13 @@ using Microsoft.Extensions.DependencyInjection; using NPin.Framework.Core; -using Volo.Abp.Modularity; using Volo.Abp.ObjectMapping; namespace NPin.Framework.Mapster; -[DependsOn(typeof(NPinFrameworkCoreModule), typeof(AbpObjectMappingModule))] +[DependsOn( + typeof(NPinFrameworkCoreModule), + typeof(AbpObjectMappingModule) +)] public class NPinFrameworkMapsterModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) diff --git a/framework/NPin.Framework.SqlSugarCore.Abstractions/DbConnOptions.cs b/framework/NPin.Framework.SqlSugarCore.Abstractions/DbConnOptions.cs index 9e17cd0..a7eb463 100644 --- a/framework/NPin.Framework.SqlSugarCore.Abstractions/DbConnOptions.cs +++ b/framework/NPin.Framework.SqlSugarCore.Abstractions/DbConnOptions.cs @@ -61,12 +61,12 @@ public class DbConnOptions /// public List? SaasMultiTenancy { get; set; } - public static string MasterTenantDbDefaultName = "Master"; - public static string TenantDbDefaultName = "Default"; + public static string MasterTenantName = "Master"; + public static string DefaultTenantName = "Default"; public SaasMultiTenancyOptions GetDefaultSaasMultiTenancy() { - return new SaasMultiTenancyOptions { Name = TenantDbDefaultName, Url = Url }; + return new SaasMultiTenancyOptions { Name = DefaultTenantName, Url = Url }; } public SaasMultiTenancyOptions? GetDefaultMasterSaasMultiTenancy() @@ -78,13 +78,13 @@ public class DbConnOptions if (string.IsNullOrEmpty(MasterSaasMultiTenancyUrl)) { - return new SaasMultiTenancyOptions { Name = MasterTenantDbDefaultName, Url = Url }; + return new SaasMultiTenancyOptions { Name = MasterTenantName, Url = Url }; } else { return new SaasMultiTenancyOptions() { - Name = MasterTenantDbDefaultName, + Name = MasterTenantName, Url = MasterSaasMultiTenancyUrl }; } diff --git a/framework/NPin.Framework.SqlSugarCore.Abstractions/NPin.Framework.SqlSugarCore.Abstractions.csproj b/framework/NPin.Framework.SqlSugarCore.Abstractions/NPin.Framework.SqlSugarCore.Abstractions.csproj index 98649b2..5a076a1 100644 --- a/framework/NPin.Framework.SqlSugarCore.Abstractions/NPin.Framework.SqlSugarCore.Abstractions.csproj +++ b/framework/NPin.Framework.SqlSugarCore.Abstractions/NPin.Framework.SqlSugarCore.Abstractions.csproj @@ -3,7 +3,7 @@ - + diff --git a/framework/NPin.Framework.SqlSugarCore/Uow/UnitOfWorkSqlSugarDbContextProvider.cs b/framework/NPin.Framework.SqlSugarCore/Uow/UnitOfWorkSqlSugarDbContextProvider.cs index 80331a0..675c8ca 100644 --- a/framework/NPin.Framework.SqlSugarCore/Uow/UnitOfWorkSqlSugarDbContextProvider.cs +++ b/framework/NPin.Framework.SqlSugarCore/Uow/UnitOfWorkSqlSugarDbContextProvider.cs @@ -15,7 +15,7 @@ public class UnitOfWorkSqlSugarDbContextProvider : ISugarDbContextPr where TDbContext : ISqlSugarDbContext { private readonly ISqlSugarDbConnectionCreator _dbConnectionCreator; - private readonly string MasterTenantDbDefaultName = DbConnOptions.MasterTenantDbDefaultName; + private readonly string MasterTenantDbDefaultName = DbConnOptions.MasterTenantName; private ILogger> Logger { get; set; } private IServiceProvider ServiceProvider { get; set; } @@ -99,7 +99,7 @@ public class UnitOfWorkSqlSugarDbContextProvider : ISugarDbContextPr if (string.IsNullOrWhiteSpace(connectionString)) { connectionString = dbContext.Options.Url; - configId = DbConnOptions.TenantDbDefaultName; + configId = DbConnOptions.DefaultTenantName; } var dbOption = dbContext.Options; diff --git a/module/Class1.cs b/module/Class1.cs deleted file mode 100644 index efcc9b1..0000000 --- a/module/Class1.cs +++ /dev/null @@ -1,5 +0,0 @@ -namespace module; - -public class Class1 -{ -} \ No newline at end of file diff --git a/module/NPin.Framework.AuditLogging.Domain.Shared/Consts/AuditLogActionConsts.cs b/module/audit-logging/NPin.Framework.AuditLogging.Domain.Shared/Consts/AuditLogActionConsts.cs similarity index 100% rename from module/NPin.Framework.AuditLogging.Domain.Shared/Consts/AuditLogActionConsts.cs rename to module/audit-logging/NPin.Framework.AuditLogging.Domain.Shared/Consts/AuditLogActionConsts.cs diff --git a/module/NPin.Framework.AuditLogging.Domain.Shared/Consts/AuditLogConsts.cs b/module/audit-logging/NPin.Framework.AuditLogging.Domain.Shared/Consts/AuditLogConsts.cs similarity index 100% rename from module/NPin.Framework.AuditLogging.Domain.Shared/Consts/AuditLogConsts.cs rename to module/audit-logging/NPin.Framework.AuditLogging.Domain.Shared/Consts/AuditLogConsts.cs diff --git a/module/NPin.Framework.AuditLogging.Domain.Shared/Consts/EntityChangeConsts.cs b/module/audit-logging/NPin.Framework.AuditLogging.Domain.Shared/Consts/EntityChangeConsts.cs similarity index 100% rename from module/NPin.Framework.AuditLogging.Domain.Shared/Consts/EntityChangeConsts.cs rename to module/audit-logging/NPin.Framework.AuditLogging.Domain.Shared/Consts/EntityChangeConsts.cs diff --git a/module/NPin.Framework.AuditLogging.Domain.Shared/Consts/EntityPropertyChangeConsts.cs b/module/audit-logging/NPin.Framework.AuditLogging.Domain.Shared/Consts/EntityPropertyChangeConsts.cs similarity index 100% rename from module/NPin.Framework.AuditLogging.Domain.Shared/Consts/EntityPropertyChangeConsts.cs rename to module/audit-logging/NPin.Framework.AuditLogging.Domain.Shared/Consts/EntityPropertyChangeConsts.cs diff --git a/module/NPin.Framework.AuditLogging.Domain.Shared/NPin.Framework.AuditLogging.Domain.Shared.csproj b/module/audit-logging/NPin.Framework.AuditLogging.Domain.Shared/NPin.Framework.AuditLogging.Domain.Shared.csproj similarity index 95% rename from module/NPin.Framework.AuditLogging.Domain.Shared/NPin.Framework.AuditLogging.Domain.Shared.csproj rename to module/audit-logging/NPin.Framework.AuditLogging.Domain.Shared/NPin.Framework.AuditLogging.Domain.Shared.csproj index 8d0d14d..63f5b40 100644 --- a/module/NPin.Framework.AuditLogging.Domain.Shared/NPin.Framework.AuditLogging.Domain.Shared.csproj +++ b/module/audit-logging/NPin.Framework.AuditLogging.Domain.Shared/NPin.Framework.AuditLogging.Domain.Shared.csproj @@ -7,7 +7,7 @@ - + diff --git a/module/NPin.Framework.AuditLogging.Domain.Shared/NPinFrameworkAuditLoggingDomainSharedModule.cs b/module/audit-logging/NPin.Framework.AuditLogging.Domain.Shared/NPinFrameworkAuditLoggingDomainSharedModule.cs similarity index 100% rename from module/NPin.Framework.AuditLogging.Domain.Shared/NPinFrameworkAuditLoggingDomainSharedModule.cs rename to module/audit-logging/NPin.Framework.AuditLogging.Domain.Shared/NPinFrameworkAuditLoggingDomainSharedModule.cs diff --git a/module/NPin.Framework.AuditLogging.Domain/AuditLogInfoToAuditLogConverter.cs b/module/audit-logging/NPin.Framework.AuditLogging.Domain/AuditLogInfoToAuditLogConverter.cs similarity index 100% rename from module/NPin.Framework.AuditLogging.Domain/AuditLogInfoToAuditLogConverter.cs rename to module/audit-logging/NPin.Framework.AuditLogging.Domain/AuditLogInfoToAuditLogConverter.cs diff --git a/module/NPin.Framework.AuditLogging.Domain/AuditingStore.cs b/module/audit-logging/NPin.Framework.AuditLogging.Domain/AuditingStore.cs similarity index 100% rename from module/NPin.Framework.AuditLogging.Domain/AuditingStore.cs rename to module/audit-logging/NPin.Framework.AuditLogging.Domain/AuditingStore.cs diff --git a/module/NPin.Framework.AuditLogging.Domain/Entities/AuditLogActionEntity.cs b/module/audit-logging/NPin.Framework.AuditLogging.Domain/Entities/AuditLogActionEntity.cs similarity index 100% rename from module/NPin.Framework.AuditLogging.Domain/Entities/AuditLogActionEntity.cs rename to module/audit-logging/NPin.Framework.AuditLogging.Domain/Entities/AuditLogActionEntity.cs diff --git a/module/NPin.Framework.AuditLogging.Domain/Entities/AuditLogAggregateRoot.cs b/module/audit-logging/NPin.Framework.AuditLogging.Domain/Entities/AuditLogAggregateRoot.cs similarity index 100% rename from module/NPin.Framework.AuditLogging.Domain/Entities/AuditLogAggregateRoot.cs rename to module/audit-logging/NPin.Framework.AuditLogging.Domain/Entities/AuditLogAggregateRoot.cs diff --git a/module/NPin.Framework.AuditLogging.Domain/Entities/EntityChangeEntity.cs b/module/audit-logging/NPin.Framework.AuditLogging.Domain/Entities/EntityChangeEntity.cs similarity index 100% rename from module/NPin.Framework.AuditLogging.Domain/Entities/EntityChangeEntity.cs rename to module/audit-logging/NPin.Framework.AuditLogging.Domain/Entities/EntityChangeEntity.cs diff --git a/module/NPin.Framework.AuditLogging.Domain/Entities/EntityPropertyChangeEntity.cs b/module/audit-logging/NPin.Framework.AuditLogging.Domain/Entities/EntityPropertyChangeEntity.cs similarity index 100% rename from module/NPin.Framework.AuditLogging.Domain/Entities/EntityPropertyChangeEntity.cs rename to module/audit-logging/NPin.Framework.AuditLogging.Domain/Entities/EntityPropertyChangeEntity.cs diff --git a/module/NPin.Framework.AuditLogging.Domain/Events/EntityChangeWithUsername.cs b/module/audit-logging/NPin.Framework.AuditLogging.Domain/Events/EntityChangeWithUsername.cs similarity index 100% rename from module/NPin.Framework.AuditLogging.Domain/Events/EntityChangeWithUsername.cs rename to module/audit-logging/NPin.Framework.AuditLogging.Domain/Events/EntityChangeWithUsername.cs diff --git a/module/NPin.Framework.AuditLogging.Domain/IAuditLogInfoToAuditLogConverter.cs b/module/audit-logging/NPin.Framework.AuditLogging.Domain/IAuditLogInfoToAuditLogConverter.cs similarity index 100% rename from module/NPin.Framework.AuditLogging.Domain/IAuditLogInfoToAuditLogConverter.cs rename to module/audit-logging/NPin.Framework.AuditLogging.Domain/IAuditLogInfoToAuditLogConverter.cs diff --git a/module/NPin.Framework.AuditLogging.Domain/NPin.Framework.AuditLogging.Domain.csproj b/module/audit-logging/NPin.Framework.AuditLogging.Domain/NPin.Framework.AuditLogging.Domain.csproj similarity index 77% rename from module/NPin.Framework.AuditLogging.Domain/NPin.Framework.AuditLogging.Domain.csproj rename to module/audit-logging/NPin.Framework.AuditLogging.Domain/NPin.Framework.AuditLogging.Domain.csproj index 73259ba..ddcb580 100644 --- a/module/NPin.Framework.AuditLogging.Domain/NPin.Framework.AuditLogging.Domain.csproj +++ b/module/audit-logging/NPin.Framework.AuditLogging.Domain/NPin.Framework.AuditLogging.Domain.csproj @@ -7,12 +7,12 @@ - - + + - + diff --git a/module/NPin.Framework.AuditLogging.Domain/NPinFrameworkAuditLoggingDomainModule.cs b/module/audit-logging/NPin.Framework.AuditLogging.Domain/NPinFrameworkAuditLoggingDomainModule.cs similarity index 100% rename from module/NPin.Framework.AuditLogging.Domain/NPinFrameworkAuditLoggingDomainModule.cs rename to module/audit-logging/NPin.Framework.AuditLogging.Domain/NPinFrameworkAuditLoggingDomainModule.cs diff --git a/module/NPin.Framework.AuditLogging.Domain/Repositories/IAuditLogRepository.cs b/module/audit-logging/NPin.Framework.AuditLogging.Domain/Repositories/IAuditLogRepository.cs similarity index 100% rename from module/NPin.Framework.AuditLogging.Domain/Repositories/IAuditLogRepository.cs rename to module/audit-logging/NPin.Framework.AuditLogging.Domain/Repositories/IAuditLogRepository.cs diff --git a/module/NPin.Framework.AuditLogging.SqlSugarCore/NPin.Framework.AuditLogging.SqlSugarCore.csproj b/module/audit-logging/NPin.Framework.AuditLogging.SqlSugarCore/NPin.Framework.AuditLogging.SqlSugarCore.csproj similarity index 62% rename from module/NPin.Framework.AuditLogging.SqlSugarCore/NPin.Framework.AuditLogging.SqlSugarCore.csproj rename to module/audit-logging/NPin.Framework.AuditLogging.SqlSugarCore/NPin.Framework.AuditLogging.SqlSugarCore.csproj index 8f04e3e..dfd664f 100644 --- a/module/NPin.Framework.AuditLogging.SqlSugarCore/NPin.Framework.AuditLogging.SqlSugarCore.csproj +++ b/module/audit-logging/NPin.Framework.AuditLogging.SqlSugarCore/NPin.Framework.AuditLogging.SqlSugarCore.csproj @@ -7,8 +7,8 @@ - - + + diff --git a/module/NPin.Framework.AuditLogging.SqlSugarCore/NPinFrameworkAuditLoggingSqlSugarCoreModule.cs b/module/audit-logging/NPin.Framework.AuditLogging.SqlSugarCore/NPinFrameworkAuditLoggingSqlSugarCoreModule.cs similarity index 100% rename from module/NPin.Framework.AuditLogging.SqlSugarCore/NPinFrameworkAuditLoggingSqlSugarCoreModule.cs rename to module/audit-logging/NPin.Framework.AuditLogging.SqlSugarCore/NPinFrameworkAuditLoggingSqlSugarCoreModule.cs diff --git a/module/NPin.Framework.AuditLogging.SqlSugarCore/Repositories/AuditLogRepository.cs b/module/audit-logging/NPin.Framework.AuditLogging.SqlSugarCore/Repositories/AuditLogRepository.cs similarity index 98% rename from module/NPin.Framework.AuditLogging.SqlSugarCore/Repositories/AuditLogRepository.cs rename to module/audit-logging/NPin.Framework.AuditLogging.SqlSugarCore/Repositories/AuditLogRepository.cs index 71cb50a..0dd8d9f 100644 --- a/module/NPin.Framework.AuditLogging.SqlSugarCore/Repositories/AuditLogRepository.cs +++ b/module/audit-logging/NPin.Framework.AuditLogging.SqlSugarCore/Repositories/AuditLogRepository.cs @@ -127,7 +127,7 @@ public class AuditLogRepository : SqlSugarRepository auditLog.ExecutionTime >= startTime) .WhereIF(endTime.HasValue, auditLog => auditLog.ExecutionTime <= endTime) .WhereIF(hasException.HasValue && hasException.Value, @@ -148,6 +148,8 @@ public class AuditLogRepository : SqlSugarRepository auditLog.ExecutionDuration <= maxExecutionDuration) .WhereIF(minExecutionDuration != null && minExecutionDuration.Value > 0, auditLog => auditLog.ExecutionDuration >= minExecutionDuration); + + return queryable; } public async Task GetEntityChange(Guid entityChangeId, @@ -207,7 +209,7 @@ public class AuditLogRepository : SqlSugarRepository e.ChangeType == changeType) .WhereIF(!string.IsNullOrWhiteSpace(entityId), e => e.EntityId == entityId) .WhereIF(!string.IsNullOrWhiteSpace(entityTypeFullName), - e => e.EntityTypeFullName.Contains(entityTypeFullName)); + e => e.EntityTypeFullName!.Contains(entityTypeFullName)); } public async Task> GetEntityChangesWithUsernameAsync(string entityId, diff --git a/module/module.csproj b/module/module.csproj deleted file mode 100644 index 3a63532..0000000 --- a/module/module.csproj +++ /dev/null @@ -1,9 +0,0 @@ - - - - net8.0 - enable - enable - - - diff --git a/module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/Dtos/TenantCreateInput.cs b/module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/Dtos/TenantCreateInput.cs new file mode 100644 index 0000000..d7a1733 --- /dev/null +++ b/module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/Dtos/TenantCreateInput.cs @@ -0,0 +1,11 @@ +using SqlSugar; + +namespace NPin.Framework.TenantManagement.Application.Contracts.Dtos; + +public class TenantCreateInput +{ + public string Name { get; set; } + public string TenantConnectionString { get; set; } + + public DbType DbType { get; set; } +} \ No newline at end of file diff --git a/module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/Dtos/TenantGetListInput.cs b/module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/Dtos/TenantGetListInput.cs new file mode 100644 index 0000000..6f878c7 --- /dev/null +++ b/module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/Dtos/TenantGetListInput.cs @@ -0,0 +1,12 @@ +using NPin.Framework.Ddd.Application.Contracts; + +namespace NPin.Framework.TenantManagement.Application.Contracts.Dtos; + +public class TenantGetListInput : PagedAllResultRequestDto +{ + public string? Name { get; set; } + + //public int? EntityVersion { get; set; } + //public string? TenantConnectionString { get; set; } + //public DbType? DbType { get; set; } +} \ No newline at end of file diff --git a/module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/Dtos/TenantGetListOutputDto.cs b/module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/Dtos/TenantGetListOutputDto.cs new file mode 100644 index 0000000..60957a6 --- /dev/null +++ b/module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/Dtos/TenantGetListOutputDto.cs @@ -0,0 +1,13 @@ +using SqlSugar; +using Volo.Abp.Application.Dtos; + +namespace NPin.Framework.TenantManagement.Application.Contracts.Dtos; + +public class TenantGetListOutputDto: EntityDto +{ + public string Name { get; set; } + public int EntityVersion { get; set; } + public string TenantConnectionString { get; set; } + public DbType DbType { get; set; } + public DateTime CreationTime { get; set; } +} \ No newline at end of file diff --git a/module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/Dtos/TenantGetOutputDto.cs b/module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/Dtos/TenantGetOutputDto.cs new file mode 100644 index 0000000..bcb9a1a --- /dev/null +++ b/module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/Dtos/TenantGetOutputDto.cs @@ -0,0 +1,13 @@ +using SqlSugar; +using Volo.Abp.Application.Dtos; + +namespace NPin.Framework.TenantManagement.Application.Contracts.Dtos; + +public class TenantGetOutputDto: EntityDto +{ + public string Name { get; set; } + public int EntityVersion { get; set; } + public string TenantConnectionString { get; set; } + public DbType DbType { get; set; } + public DateTime CreationTime { get; set; } +} \ No newline at end of file diff --git a/module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/Dtos/TenantSelectOutputDto.cs b/module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/Dtos/TenantSelectOutputDto.cs new file mode 100644 index 0000000..a843c9f --- /dev/null +++ b/module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/Dtos/TenantSelectOutputDto.cs @@ -0,0 +1,8 @@ +using Volo.Abp.Application.Dtos; + +namespace NPin.Framework.TenantManagement.Application.Contracts.Dtos; + +public class TenantSelectOutputDto: EntityDto +{ + public string Name { get; set; } +} \ No newline at end of file diff --git a/module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/Dtos/TenantUpdateInput.cs b/module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/Dtos/TenantUpdateInput.cs new file mode 100644 index 0000000..c2adbde --- /dev/null +++ b/module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/Dtos/TenantUpdateInput.cs @@ -0,0 +1,11 @@ +using SqlSugar; + +namespace NPin.Framework.TenantManagement.Application.Contracts.Dtos; + +public class TenantUpdateInput +{ + public string? Name { get; set; } + public int? EntityVersion { get; set; } + public string? TenantConnectionString { get; set; } + public DbType? DbType { get; set; } +} \ No newline at end of file diff --git a/module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/ITenantService.cs b/module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/ITenantService.cs new file mode 100644 index 0000000..c727530 --- /dev/null +++ b/module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/ITenantService.cs @@ -0,0 +1,12 @@ +using NPin.Framework.Ddd.Application.Contracts; +using NPin.Framework.TenantManagement.Application.Contracts.Dtos; + +namespace NPin.Framework.TenantManagement.Application.Contracts; + +/// +/// 租户CRUD服务 +/// +public interface ITenantService : INPinCrudAppService +{ +} \ No newline at end of file diff --git a/module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/NPin.Framework.TenantManagement.Application.Contracts.csproj b/module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/NPin.Framework.TenantManagement.Application.Contracts.csproj new file mode 100644 index 0000000..d9b4c22 --- /dev/null +++ b/module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/NPin.Framework.TenantManagement.Application.Contracts.csproj @@ -0,0 +1,19 @@ + + + + + net8.0 + enable + enable + + + + + + + + + + + + diff --git a/module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/NPinFrameworkTenantManagementApplicationContractsModule.cs b/module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/NPinFrameworkTenantManagementApplicationContractsModule.cs new file mode 100644 index 0000000..ab9869c --- /dev/null +++ b/module/tenant-management/NPin.Framework.TenantManagement.Application.Contracts/NPinFrameworkTenantManagementApplicationContractsModule.cs @@ -0,0 +1,13 @@ +using NPin.Framework.Ddd.Application.Contracts; +using Volo.Abp.Modularity; +using Volo.Abp.TenantManagement; + +namespace NPin.Framework.TenantManagement.Application.Contracts; + +[DependsOn( + typeof(AbpTenantManagementDomainSharedModule), + typeof(NPinFrameworkDddApplicationContractsModule) +)] +public class NPinFrameworkTenantManagementApplicationContractsModule : AbpModule +{ +} \ No newline at end of file diff --git a/module/tenant-management/NPin.Framework.TenantManagement.Application/NPin.Framework.TenantManagement.Application.csproj b/module/tenant-management/NPin.Framework.TenantManagement.Application/NPin.Framework.TenantManagement.Application.csproj new file mode 100644 index 0000000..b70ce8d --- /dev/null +++ b/module/tenant-management/NPin.Framework.TenantManagement.Application/NPin.Framework.TenantManagement.Application.csproj @@ -0,0 +1,16 @@ + + + + + net8.0 + enable + enable + + + + + + + + + diff --git a/module/tenant-management/NPin.Framework.TenantManagement.Application/NPinFrameworkTenantManagementApplicationModule.cs b/module/tenant-management/NPin.Framework.TenantManagement.Application/NPinFrameworkTenantManagementApplicationModule.cs new file mode 100644 index 0000000..0e82a40 --- /dev/null +++ b/module/tenant-management/NPin.Framework.TenantManagement.Application/NPinFrameworkTenantManagementApplicationModule.cs @@ -0,0 +1,9 @@ +using NPin.Framework.TenantManagement.Domain; +using Volo.Abp.Modularity; + +namespace NPin.Framework.TenantManagement.Application; + +[DependsOn(typeof(NPinFrameworkTenantManagementDomainModule))] +public class NPinFrameworkTenantManagementApplicationModule : AbpModule +{ +} \ No newline at end of file diff --git a/module/tenant-management/NPin.Framework.TenantManagement.Application/TenantService.cs b/module/tenant-management/NPin.Framework.TenantManagement.Application/TenantService.cs new file mode 100644 index 0000000..33917d8 --- /dev/null +++ b/module/tenant-management/NPin.Framework.TenantManagement.Application/TenantService.cs @@ -0,0 +1,143 @@ +using System.Reflection; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.DependencyInjection; +using NPin.Framework.Ddd.Application; +using NPin.Framework.SqlSugarCore.Abstractions; +using NPin.Framework.TenantManagement.Application.Contracts; +using NPin.Framework.TenantManagement.Application.Contracts.Dtos; +using NPin.Framework.TenantManagement.Domain; +using SqlSugar; +using Volo.Abp; +using Volo.Abp.Application.Dtos; +using Volo.Abp.Data; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Modularity; + +namespace NPin.Framework.TenantManagement.Application; + +public class TenantService : NPinCrudAppService, ITenantService +{ + private ISqlSugarRepository _repository; + private IDataSeeder _dataSeeder; + + public TenantService(IRepository repository, + ISqlSugarRepository repository2, IDataSeeder dataSeeder) : base(repository) + { + _repository = repository2; + _dataSeeder = dataSeeder; + } + + /// + /// 多查 + /// + /// + /// + public override async Task> GetListAsync(TenantGetListInput input) + { + RefAsync total = 0; + var entities = await _repository.DbQueryable + .WhereIF(!string.IsNullOrEmpty(input.Name), x => x.Name.Contains(input.Name!)) + .WhereIF(input.StartTime is not null && input.EndTime is not null, + x => x.CreationTime >= input.StartTime && x.CreationTime <= input.EndTime) + .ToPageListAsync(input.SkipCount, input.MaxResultCount, total); + return new PagedResultDto(total, await MapToGetListOutputDtosAsync(entities)); + } + + /// + /// 租户选项列表(显示名称) + /// + /// + public async Task> GetSelectAsync() + { + var entities = await _repository.DbQueryable.ToListAsync(); + return entities.Select(x => new TenantSelectOutputDto { Id = x.Id, Name = x.Name }) + .ToList(); + } + + /// + /// 创建租户 + /// + /// + /// + public override async Task CreateAsync(TenantCreateInput input) + { + // 检查是否存在 + if (await _repository.IsAnyAsync(x => x.Name == input.Name)) + { + throw new UserFriendlyException("创建失败,当前租户已存在"); + } + + return await base.CreateAsync(input); + } + + /// + /// 更新租户信息 + /// + /// + /// + /// + public override async Task UpdateAsync(Guid id, TenantUpdateInput input) + { + if (await _repository.IsAnyAsync(x => x.Name == input.Name && x.Id != id)) + { + throw new UserFriendlyException("更新失败,更新后租户已存在"); + } + + return await base.UpdateAsync(id, input); + } + + // 只是为了可以在swagger上展示? + /// + /// 租户删除 + /// + /// + /// + public override Task DeleteAsync(IEnumerable ids) + { + return base.DeleteAsync(ids); + } + + /// + /// 初始化租户 + /// + /// + [HttpPost("tenant/init/{id}")] + public async Task InitAsync([FromRoute] Guid id) + { + using (CurrentTenant.Change(id)) + { + // 初始化 租户数据库/表 结构 + await CodeFirst(LazyServiceProvider); + // 插入 种子数据 + await _dataSeeder.SeedAsync(id); + } + } + + /// + /// 数据库 / 表 初始化 + /// + /// + private async Task CodeFirst(IServiceProvider service) + { + var moduleContainer = service.GetRequiredService(); + var db = await _repository.GetDbContextAsync(); + + // 尝试创建数据库 + db.DbMaintenance.CreateDatabase(); + + List types = new List(); + foreach (var module in moduleContainer.Modules) + { + types.AddRange(module.Assembly.GetTypes() + .Where(x => x.GetCustomAttribute() == null) + .Where(x => x.GetCustomAttribute() != null) + .Where(x => x.GetCustomAttribute() is null)); + } + + if (types.Count > 0) + { + db.CopyNew().CodeFirst.InitTables(types.ToArray()); + } + } +} \ No newline at end of file diff --git a/module/tenant-management/NPin.Framework.TenantManagement.Domain/ITenantRepository.cs b/module/tenant-management/NPin.Framework.TenantManagement.Domain/ITenantRepository.cs new file mode 100644 index 0000000..fddf2e8 --- /dev/null +++ b/module/tenant-management/NPin.Framework.TenantManagement.Domain/ITenantRepository.cs @@ -0,0 +1,13 @@ +using NPin.Framework.SqlSugarCore.Abstractions; + +namespace NPin.Framework.TenantManagement.Domain; + +public interface ISqlSugarTenantRepository : ISqlSugarRepository +{ + Task FindByNameAsync(string name, bool includeDetails = true); + + Task> GetListAsync(string sorting = null, int maxResultCount = int.MaxValue, + int skipCount = 0, string filter = null, bool includeDetails = false); + + Task GetCountAsync(string filter = null); +} \ No newline at end of file diff --git a/module/tenant-management/NPin.Framework.TenantManagement.Domain/NPin.Framework.TenantManagement.Domain.csproj b/module/tenant-management/NPin.Framework.TenantManagement.Domain/NPin.Framework.TenantManagement.Domain.csproj new file mode 100644 index 0000000..883aca5 --- /dev/null +++ b/module/tenant-management/NPin.Framework.TenantManagement.Domain/NPin.Framework.TenantManagement.Domain.csproj @@ -0,0 +1,19 @@ + + + + + net8.0 + enable + enable + + + + + + + + + + + + diff --git a/module/tenant-management/NPin.Framework.TenantManagement.Domain/NPinFrameworkTenantManagementDomainModule.cs b/module/tenant-management/NPin.Framework.TenantManagement.Domain/NPinFrameworkTenantManagementDomainModule.cs new file mode 100644 index 0000000..ad58350 --- /dev/null +++ b/module/tenant-management/NPin.Framework.TenantManagement.Domain/NPinFrameworkTenantManagementDomainModule.cs @@ -0,0 +1,26 @@ +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.DependencyInjection.Extensions; +using Volo.Abp.Data; +using Volo.Abp.Domain; +using Volo.Abp.Modularity; +using Volo.Abp.MultiTenancy; +using Volo.Abp.TenantManagement; + +namespace NPin.Framework.TenantManagement.Domain; + +[DependsOn( + typeof(AbpDddDomainModule), + typeof(AbpTenantManagementDomainSharedModule) +)] +public class NPinFrameworkTenantManagementDomainModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + var services = context.Services; + + // 替换原有服务 + services.Replace(new ServiceDescriptor(typeof(ITenantStore), typeof(SqlSugarTenantStore), ServiceLifetime.Transient)); + services.Replace(new ServiceDescriptor(typeof(IConnectionStringResolver), + typeof(NPinMultiTenantConnectionStringResolver), ServiceLifetime.Transient)); + } +} \ No newline at end of file diff --git a/module/tenant-management/NPin.Framework.TenantManagement.Domain/NPinMultiTenantConnectionStringResolver.cs b/module/tenant-management/NPin.Framework.TenantManagement.Domain/NPinMultiTenantConnectionStringResolver.cs new file mode 100644 index 0000000..165ddba --- /dev/null +++ b/module/tenant-management/NPin.Framework.TenantManagement.Domain/NPinMultiTenantConnectionStringResolver.cs @@ -0,0 +1,152 @@ +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; +using Volo.Abp; +using Volo.Abp.Data; +using Volo.Abp.DependencyInjection; +using Volo.Abp.MultiTenancy; + +namespace NPin.Framework.TenantManagement.Domain; + +/// +/// 数据库连接字符串解析器,替代原有 +/// +[Dependency(ReplaceServices = true)] +public class NPinMultiTenantConnectionStringResolver : DefaultConnectionStringResolver +{ + private readonly ICurrentTenant _currentTenant; + private readonly IServiceProvider _serviceProvider; + + public NPinMultiTenantConnectionStringResolver(IOptionsMonitor options, + ICurrentTenant currentTenant, IServiceProvider serviceProvider) : base(options) + { + _currentTenant = currentTenant; + _serviceProvider = serviceProvider; + } + + public override async Task ResolveAsync(string? connectionStringName = null) + { + if (_currentTenant.Id == null) + { + // 无租户信息,使用原有解析器 + return await base.ResolveAsync(connectionStringName); + } + + // 通过Store寻找租户缓存 + var tenant = await FindTenantConfigurationAsync(_currentTenant.Id.Value); + if (tenant == null || tenant.ConnectionStrings.IsNullOrEmpty()) + { + // 找不到租户缓存,使用原有解析器 + return await base.ResolveAsync(connectionStringName); + } + + var tenantDefaultConnectionString = tenant.ConnectionStrings?.Default; + + var connString = tenant.ConnectionStrings?.FirstOrDefault().Value; + if (!connString.IsNullOrWhiteSpace()) + { + return connString; + } + + // 库隔离 + var database = Options.Databases.GetMappedDatabaseOrNull(connectionStringName); + if (database is { IsUsedByTenants: true }) + { + connString = tenant.ConnectionStrings?.GetOrDefault(database.DatabaseName); + if (!connString.IsNullOrWhiteSpace()) + { + return connString; + } + } + + if (!tenantDefaultConnectionString.IsNullOrWhiteSpace()) + { + return tenantDefaultConnectionString; + } + + return await base.ResolveAsync(connectionStringName); + } + + protected virtual async Task FindTenantConfigurationAsync(Guid tenantId) + { + using var serviceScope = _serviceProvider.CreateScope(); + + var tenantStore = serviceScope + .ServiceProvider + .GetRequiredService(); + + return await tenantStore.FindAsync(tenantId); + } + + [Obsolete("Use ResolveAsync Instead.")] + public override string Resolve(string? connectionStringName = null) + { + if (_currentTenant.Id == null) + { + // 无租户信息,使用原有解析器 + return base.Resolve(connectionStringName); + } + + // 通过Store寻找租户缓存 + var tenant = FindTenantConfiguration(_currentTenant.Id.Value); + if (tenant == null || tenant.ConnectionStrings.IsNullOrEmpty()) + { + // 找不到租户缓存,使用原有解析器 + return base.Resolve(connectionStringName); + } + + var tenantDefaultConnectionString = tenant.ConnectionStrings?.Default; + + // Requesting default connection string... + if (connectionStringName == null || + connectionStringName == ConnectionStrings.DefaultConnectionStringName) + { + //Return tenant's default or global default + return !tenantDefaultConnectionString.IsNullOrWhiteSpace() + ? tenantDefaultConnectionString! + : Options.ConnectionStrings.Default!; + } + + // Requesting specific connection string... + var connString = tenant.ConnectionStrings?.GetOrDefault(connectionStringName); + if (!connString.IsNullOrWhiteSpace()) + { + // Found for the tenant + return connString!; + } + + // Fallback to tenant's default connection string if available + if (!tenantDefaultConnectionString.IsNullOrWhiteSpace()) + { + return tenantDefaultConnectionString!; + } + + // Try to find the specific connection string for given name + var connStringInOptions = Options.ConnectionStrings.GetOrDefault(connectionStringName); + if (!connStringInOptions.IsNullOrWhiteSpace()) + { + return connStringInOptions!; + } + + // Fallback to the global default connection string + var defaultConnectionString = Options.ConnectionStrings.Default; + if (!defaultConnectionString.IsNullOrWhiteSpace()) + { + return defaultConnectionString!; + } + + throw new AbpException("No connection string defined!"); + } + + + [Obsolete("Use FindTenantConfigurationAsync Instead.")] + protected virtual TenantConfiguration? FindTenantConfiguration(Guid tenantId) + { + using var serviceScope = _serviceProvider.CreateScope(); + + var tenantStore = serviceScope + .ServiceProvider + .GetRequiredService(); + + return tenantStore.Find(tenantId); + } +} \ No newline at end of file diff --git a/module/tenant-management/NPin.Framework.TenantManagement.Domain/SqlSugarTenantStore.cs b/module/tenant-management/NPin.Framework.TenantManagement.Domain/SqlSugarTenantStore.cs new file mode 100644 index 0000000..df00a03 --- /dev/null +++ b/module/tenant-management/NPin.Framework.TenantManagement.Domain/SqlSugarTenantStore.cs @@ -0,0 +1,124 @@ +using JetBrains.Annotations; +using NPin.Framework.SqlSugarCore.Abstractions; +using Volo.Abp; +using Volo.Abp.Caching; +using Volo.Abp.Data; +using Volo.Abp.MultiTenancy; + +namespace NPin.Framework.TenantManagement.Domain; + +/// +/// 实现TenantStore +/// +public class SqlSugarTenantStore: ITenantStore +{ + private ISqlSugarTenantRepository TenantRepository { get; } + protected ICurrentTenant CurrentTenant { get; } + protected IDistributedCache Cache { get; } + + public SqlSugarTenantStore(ISqlSugarTenantRepository tenantRepository, ICurrentTenant currentTenant, IDistributedCache cache) + { + TenantRepository = tenantRepository; + CurrentTenant = currentTenant; + Cache = cache; + } + + + public Task FindAsync(string name) + { + throw new NotImplementedException(); + } + + public Task FindAsync(Guid id) + { + throw new NotImplementedException(); + } + + protected virtual async Task GetCacheItemAsync(Guid? id, string name) + { + var cacheKey = CalculateCacheKey(id, name); + var cacheItem = await Cache.GetAsync(cacheKey, considerUow: true); + if (cacheItem != null) + { + return cacheItem; + } + + if (id.HasValue) + { + using (CurrentTenant.Change(null)) + { + var tenant = await TenantRepository.FindAsync(id.Value); + return await SetCacheAsync(cacheKey, tenant); + } + } + + if (!name.IsNullOrWhiteSpace()) + { + using (CurrentTenant.Change(null)) + { + var tenant = await TenantRepository.FindByNameAsync(name); + return await SetCacheAsync(cacheKey, tenant); + } + } + + throw new AbpException("Id和Name不能都为空"); + } + + protected virtual async Task SetCacheAsync(string cacheKey, TenantAggregateRoot? tenant) + { + var tenantConfiguration = tenant != null ? MapToConfiguration(tenant) : null; + var cacheItem = new TenantCacheItem(tenantConfiguration); + await Cache.SetAsync(cacheKey, cacheItem, considerUow: true); + return cacheItem; + } + + private TenantConfiguration MapToConfiguration(TenantAggregateRoot tenantAggregateRoot) + { + var tenantConfiguration = new TenantConfiguration + { + Id = tenantAggregateRoot.Id, + Name = tenantAggregateRoot.Name, + ConnectionStrings = MapToString(tenantAggregateRoot.TenantConnectionString), + IsActive = true + }; + return tenantConfiguration; + } + + private ConnectionStrings? MapToString(string tenantConnectionString) + { + + //tenantConnectionString = tenantConnectionString.TrimEnd(';'); + //var strSpiteds = tenantConnectionString.Split(";"); + //if (strSpiteds.Count() == 0) + //{ + // return null; + + //} + + var connectionStrings = new ConnectionStrings(); + //foreach (string strSpited in strSpiteds) + //{ + // var key = strSpited.Split('=')[0]; + // var value = strSpited.Split('=')[1]; + // connectionStrings[key] = value; + //} + connectionStrings["test"] = tenantConnectionString; + + return connectionStrings; + } + + protected virtual string CalculateCacheKey(Guid? id, string name) + { + return TenantCacheItem.CalculateCacheKey(id, name); + } + + public TenantConfiguration? Find(string name) + { + throw new NotImplementedException("请使用异步方法"); + } + + public TenantConfiguration? Find(Guid id) + { + throw new NotImplementedException("请使用异步方法"); + } +} \ No newline at end of file diff --git a/module/tenant-management/NPin.Framework.TenantManagement.Domain/TenantAggregateRoot.cs b/module/tenant-management/NPin.Framework.TenantManagement.Domain/TenantAggregateRoot.cs new file mode 100644 index 0000000..c975592 --- /dev/null +++ b/module/tenant-management/NPin.Framework.TenantManagement.Domain/TenantAggregateRoot.cs @@ -0,0 +1,50 @@ +using JetBrains.Annotations; +using NPin.Framework.SqlSugarCore.Abstractions; +using SqlSugar; +using Volo.Abp.Auditing; +using Volo.Abp.Data; +using Volo.Abp.Domain.Entities.Auditing; +using Volo.Abp.TenantManagement; +using Check = Volo.Abp.Check; + +namespace NPin.Framework.TenantManagement.Domain; + +[SugarTable("NPinTenant")] +[MasterTenant] +public class TenantAggregateRoot : FullAuditedAggregateRoot, IHasEntityVersion +{ + [SugarColumn(IsPrimaryKey = true)] public override Guid Id { get; protected set; } + public virtual string Name { get; protected set; } + public int EntityVersion { get; protected set; } + + public string TenantConnectionString { get; protected set; } + + public DbType DbType { get; protected set; } + + [SugarColumn(IsIgnore = true)] + public override ExtraPropertyDictionary ExtraProperties + { + get => base.ExtraProperties; + protected set => base.ExtraProperties = value; + } + + public virtual void SetConnectionString(DbType dbType, string connectionString) + { + DbType = dbType; + TenantConnectionString = connectionString; + } + + protected internal virtual void SetName([NotNull] string name) + { + Name = Check.NotNullOrWhiteSpace(name, nameof(name), TenantConsts.MaxNameLength); + } + + public TenantAggregateRoot() + { + } + + protected internal TenantAggregateRoot(Guid id, [NotNull] string name) : base(id) + { + SetName(name); + } +} \ No newline at end of file diff --git a/module/tenant-management/NPin.Framework.TenantManagement.Domain/TenantCacheItem.cs b/module/tenant-management/NPin.Framework.TenantManagement.Domain/TenantCacheItem.cs new file mode 100644 index 0000000..c975846 --- /dev/null +++ b/module/tenant-management/NPin.Framework.TenantManagement.Domain/TenantCacheItem.cs @@ -0,0 +1,34 @@ +using Volo.Abp; +using Volo.Abp.MultiTenancy; + +namespace NPin.Framework.TenantManagement.Domain; + +[Serializable] +[IgnoreMultiTenancy] +public class TenantCacheItem +{ + private const string CacheKeyFormat = "i:{0},n:{1}"; + + public TenantConfiguration Value { get; set; } + + public TenantCacheItem() + { + } + + public TenantCacheItem(TenantConfiguration value) + { + Value = value; + } + + public static string CalculateCacheKey(Guid? id, string name) + { + if (id == null && name.IsNullOrWhiteSpace()) + { + throw new AbpException("Id和Name都为空"); + } + + return string.Format(CacheKeyFormat, + id?.ToString() ?? "null", + name.IsNullOrWhiteSpace() ? "null" : name); + } +} \ No newline at end of file diff --git a/module/tenant-management/NPin.Framework.TenantManagement.Domain/TenantManagementExtensions.cs b/module/tenant-management/NPin.Framework.TenantManagement.Domain/TenantManagementExtensions.cs new file mode 100644 index 0000000..19e3fed --- /dev/null +++ b/module/tenant-management/NPin.Framework.TenantManagement.Domain/TenantManagementExtensions.cs @@ -0,0 +1,17 @@ +using NPin.Framework.SqlSugarCore.Abstractions; +using Volo.Abp.MultiTenancy; + +namespace NPin.Framework.TenantManagement.Domain; + +public static class TenantManagementExtensions +{ + public static IDisposable ChangeMaster(this ICurrentTenant currentTenant) + { + return currentTenant.Change(null, DbConnOptions.MasterTenantName); + } + + public static IDisposable ChangeDefault(this ICurrentTenant currentTenant) + { + return currentTenant.Change(null, DbConnOptions.DefaultTenantName); + } +} \ No newline at end of file diff --git a/module/tenant-management/NPin.Framework.TenantManagement.SqlSugarCore/NPin.Framework.TenantManagement.SqlSugarCore.csproj b/module/tenant-management/NPin.Framework.TenantManagement.SqlSugarCore/NPin.Framework.TenantManagement.SqlSugarCore.csproj new file mode 100644 index 0000000..b35eeb8 --- /dev/null +++ b/module/tenant-management/NPin.Framework.TenantManagement.SqlSugarCore/NPin.Framework.TenantManagement.SqlSugarCore.csproj @@ -0,0 +1,15 @@ + + + + + net8.0 + enable + enable + + + + + + + + diff --git a/module/tenant-management/NPin.Framework.TenantManagement.SqlSugarCore/NPinFrameworkTenantManagementSqlSugarCoreModule.cs b/module/tenant-management/NPin.Framework.TenantManagement.SqlSugarCore/NPinFrameworkTenantManagementSqlSugarCoreModule.cs new file mode 100644 index 0000000..fbaba8c --- /dev/null +++ b/module/tenant-management/NPin.Framework.TenantManagement.SqlSugarCore/NPinFrameworkTenantManagementSqlSugarCoreModule.cs @@ -0,0 +1,10 @@ +using Microsoft.Extensions.DependencyInjection; +using NPin.Framework.TenantManagement.Domain; +using Volo.Abp.Modularity; + +namespace NPin.Framework.TenantManagement.SqlSugarCore; + +[DependsOn(typeof(NPinFrameworkTenantManagementDomainModule))] +public class NPinFrameworkTenantManagementSqlSugarCoreModule : AbpModule +{ +} \ No newline at end of file diff --git a/module/tenant-management/NPin.Framework.TenantManagement.SqlSugarCore/TenantRepository.cs b/module/tenant-management/NPin.Framework.TenantManagement.SqlSugarCore/TenantRepository.cs new file mode 100644 index 0000000..1d6ec88 --- /dev/null +++ b/module/tenant-management/NPin.Framework.TenantManagement.SqlSugarCore/TenantRepository.cs @@ -0,0 +1,35 @@ +using NPin.Framework.SqlSugarCore.Abstractions; +using NPin.Framework.SqlSugarCore.Repositories; +using NPin.Framework.TenantManagement.Domain; +using Volo.Abp.DependencyInjection; + +namespace NPin.Framework.TenantManagement.SqlSugarCore; + +public class SqlSugarTenantRepository : SqlSugarRepository, ISqlSugarTenantRepository, + ITransientDependency +{ + public SqlSugarTenantRepository(ISugarDbContextProvider sugarDbContextProvider) : base( + sugarDbContextProvider) + { + } + + public async Task FindByNameAsync(string name, bool includeDetails = true) + { + return await DbQueryable.FirstAsync(x => x.Name == name); + } + + public async Task> GetListAsync(string sorting = null, + int maxResultCount = Int32.MaxValue, int skipCount = 0, string filter = null, + bool includeDetails = false) + { + return await DbQueryable + .WhereIF(!string.IsNullOrEmpty(filter), x => x.Name.Contains(filter)) + .OrderByIF(!string.IsNullOrEmpty(sorting), sorting) + .ToPageListAsync(skipCount, maxResultCount); + } + + public async Task GetCountAsync(string filter = null) + { + return await DbQueryable.WhereIF(!string.IsNullOrEmpty(filter), x => x.Name.Contains(filter)).CountAsync(); + } +} \ No newline at end of file diff --git a/src/NPin.Application.Contracts/NPin.Application.Contracts.csproj b/src/NPin.Application.Contracts/NPin.Application.Contracts.csproj index 84992ab..660a61e 100644 --- a/src/NPin.Application.Contracts/NPin.Application.Contracts.csproj +++ b/src/NPin.Application.Contracts/NPin.Application.Contracts.csproj @@ -8,6 +8,7 @@ + diff --git a/src/NPin.Application.Contracts/NPinApplicationContractsModule.cs b/src/NPin.Application.Contracts/NPinApplicationContractsModule.cs index e5a2bb6..ba75ed5 100644 --- a/src/NPin.Application.Contracts/NPinApplicationContractsModule.cs +++ b/src/NPin.Application.Contracts/NPinApplicationContractsModule.cs @@ -1,5 +1,6 @@ using NPin.Domain.Shared; using NPin.Framework.Ddd.Application.Contracts; +using NPin.Framework.TenantManagement.Application.Contracts; namespace NPin.Application.Contracts; @@ -7,9 +8,9 @@ namespace NPin.Application.Contracts; typeof(NPinDomainSharedModule), // TODO RBAC // TODO Bbs - // TODO Tenant - typeof(NPinFrameworkDddApplicationContractsModule))] + typeof(NPinFrameworkTenantManagementApplicationContractsModule), + typeof(NPinFrameworkDddApplicationContractsModule) +)] public class NPinApplicationContractsModule : AbpModule { - } \ No newline at end of file diff --git a/src/NPin.Application/NPin.Application.csproj b/src/NPin.Application/NPin.Application.csproj index e0e8cd2..a20842a 100644 --- a/src/NPin.Application/NPin.Application.csproj +++ b/src/NPin.Application/NPin.Application.csproj @@ -2,6 +2,7 @@ + @@ -10,4 +11,8 @@ + + + + diff --git a/src/NPin.Application/NPinApplicationModule.cs b/src/NPin.Application/NPinApplicationModule.cs index 6a2b8f3..7b67707 100644 --- a/src/NPin.Application/NPinApplicationModule.cs +++ b/src/NPin.Application/NPinApplicationModule.cs @@ -1,16 +1,18 @@ using NPin.Application.Contracts; using NPin.Domain; using NPin.Framework.Ddd.Application; -using NPin.Framework.Ddd.Application.Contracts; +using NPin.Framework.TenantManagement.Application; namespace NPin.Application; [DependsOn( typeof(NPinApplicationContractsModule), typeof(NPinDomainModule), - // TODO rbac bbs tenant codegen + // TODO rbac bbs + typeof(NPinFrameworkTenantManagementApplicationModule), + // TODO code-gen typeof(NPinFrameworkDddApplicationModule) - )] -public class NPinApplicationModule: AbpModule +)] +public class NPinApplicationModule : AbpModule { } \ No newline at end of file diff --git a/src/NPin.Domain.Shared/NPin.Domain.Shared.csproj b/src/NPin.Domain.Shared/NPin.Domain.Shared.csproj index 02e4d8c..2fc014b 100644 --- a/src/NPin.Domain.Shared/NPin.Domain.Shared.csproj +++ b/src/NPin.Domain.Shared/NPin.Domain.Shared.csproj @@ -9,7 +9,10 @@ - - + + + + + diff --git a/src/NPin.Domain.Shared/NPinDomainSharedModule.cs b/src/NPin.Domain.Shared/NPinDomainSharedModule.cs index 053b4b4..56ef87d 100644 --- a/src/NPin.Domain.Shared/NPinDomainSharedModule.cs +++ b/src/NPin.Domain.Shared/NPinDomainSharedModule.cs @@ -1,10 +1,13 @@ -namespace NPin.Domain.Shared; +using NPin.Framework.AuditLogging.Domain.Shared; +using Volo.Abp.Domain; + +namespace NPin.Domain.Shared; [DependsOn( // TODO RBAC // TODO BBS -// TODO AuditLogging - // TODO AbpDddDomainSharedModule + typeof(NPinFrameworkAuditLoggingDomainSharedModule), + typeof(AbpDddDomainSharedModule) )] public class NPinDomainSharedModule : AbpModule { diff --git a/src/NPin.Domain/NPin.Domain.csproj b/src/NPin.Domain/NPin.Domain.csproj index 14d796e..85839a9 100644 --- a/src/NPin.Domain/NPin.Domain.csproj +++ b/src/NPin.Domain/NPin.Domain.csproj @@ -11,6 +11,13 @@ + + + + + + + diff --git a/src/NPin.Domain/NPinDomainModule.cs b/src/NPin.Domain/NPinDomainModule.cs index e2b1cba..68f3ec9 100644 --- a/src/NPin.Domain/NPinDomainModule.cs +++ b/src/NPin.Domain/NPinDomainModule.cs @@ -1,5 +1,7 @@ using NPin.Domain.Shared; +using NPin.Framework.AuditLogging.Domain; using NPin.Framework.Mapster; +using NPin.Framework.TenantManagement.Domain; using Volo.Abp.Caching; using Volo.Abp.Domain; @@ -7,10 +9,12 @@ namespace NPin.Domain; [DependsOn( typeof(NPinDomainSharedModule), - // TODO Tenant + // + typeof(NPinFrameworkTenantManagementDomainModule), // TODO Rbac // TODO Bbs - // TODO Audit + typeof(NPinFrameworkAuditLoggingDomainModule), + // typeof(NPinFrameworkMapsterModule), typeof(AbpDddDomainModule), typeof(AbpCachingModule) diff --git a/src/NPin.SqlSugarCore/NPin.SqlSugarCore.csproj b/src/NPin.SqlSugarCore/NPin.SqlSugarCore.csproj index 1595520..52477d4 100644 --- a/src/NPin.SqlSugarCore/NPin.SqlSugarCore.csproj +++ b/src/NPin.SqlSugarCore/NPin.SqlSugarCore.csproj @@ -9,7 +9,8 @@ - + + diff --git a/src/NPin.SqlSugarCore/NPinSqlSugarCoreModule.cs b/src/NPin.SqlSugarCore/NPinSqlSugarCoreModule.cs index 208a45b..bf90ce1 100644 --- a/src/NPin.SqlSugarCore/NPinSqlSugarCoreModule.cs +++ b/src/NPin.SqlSugarCore/NPinSqlSugarCoreModule.cs @@ -2,6 +2,7 @@ using NPin.Framework.AuditLogging.SqlSugarCore; using NPin.Framework.Mapster; using NPin.Framework.SqlSugarCore; +using NPin.Framework.TenantManagement.SqlSugarCore; namespace NPin.SqlSugarCore; @@ -9,7 +10,8 @@ namespace NPin.SqlSugarCore; typeof(NPinDomainModule), // TODO rbac bbs codegen typeof(NPinFrameworkAuditLoggingSqlSugarCoreModule), - // TODO tenant + typeof(NPinFrameworkTenantManagementSqlSugarCoreModule), + // typeof(NPinFrameworkMapsterModule), typeof(NPinFrameworkSqlSugarCoreModule) )] diff --git a/src/NPin.Web/NPin.Web.csproj b/src/NPin.Web/NPin.Web.csproj index f7d04a2..43638a7 100644 --- a/src/NPin.Web/NPin.Web.csproj +++ b/src/NPin.Web/NPin.Web.csproj @@ -7,15 +7,16 @@ - - - + + + + - - - - - + + + + + diff --git a/src/NPin.Web/NPin.http b/src/NPin.Web/NPin.http deleted file mode 100644 index 2ea2787..0000000 --- a/src/NPin.Web/NPin.http +++ /dev/null @@ -1,6 +0,0 @@ -@NPin_HostAddress = http://localhost:5122 - -GET {{NPin_HostAddress}}/weatherforecast/ -Accept: application/json - -### diff --git a/src/NPin.Web/NPinWebModule.cs b/src/NPin.Web/NPinWebModule.cs index 7d95467..bf35837 100644 --- a/src/NPin.Web/NPinWebModule.cs +++ b/src/NPin.Web/NPinWebModule.cs @@ -9,11 +9,13 @@ using NPin.Framework.AspNetCore.Authentication.OAuth.Gitee; using NPin.Framework.AspNetCore.Authentication.OAuth.QQ; using NPin.Framework.AspNetCore.Microsoft.AspNetCore.Builder; using NPin.Framework.AspNetCore.Microsoft.Extensions.DependencyInjection; +using NPin.Framework.TenantManagement.Application; using NPin.SqlSugarCore; using Volo.Abp.AspNetCore.Authentication.JwtBearer; using Volo.Abp.AspNetCore.MultiTenancy; using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc.AntiForgery; +using Volo.Abp.AspNetCore.Serilog; using Volo.Abp.Auditing; using Volo.Abp.Autofac; using Volo.Abp.Caching; @@ -30,6 +32,7 @@ namespace NPin; typeof(AbpAspNetCoreMvcModule), typeof(AbpAutofacModule), typeof(AbpSwashbuckleModule), + typeof(AbpAspNetCoreSerilogModule), typeof(AbpAuditingModule), typeof(AbpAspNetCoreAuthenticationJwtBearerModule), // Framework modules @@ -60,7 +63,9 @@ public class NPinWebModule : AbpModule opt.ConventionalControllers.Create(typeof(NPinApplicationModule).Assembly, opts => opts.RemoteServiceName = "default"); // TODO 添加其它模块的动态API - // Rbac bbs tenant code-gen + // TODO Rbac bbs code-gen + opt.ConventionalControllers.Create(typeof(NPinFrameworkTenantManagementApplicationModule).Assembly, + opts => opts.RemoteServiceName = "tenant-management"); }); // Api格式配置 @@ -125,8 +130,8 @@ public class NPinWebModule : AbpModule // var jwtOptions = configuration.GetSection(nameof(JwtOptions)) context.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) - .AddJwtBearer(opt => { }) - .AddJwtBearer(opt => { }) + // .AddJwtBearer(opt => { }) + // .AddJwtBearer(opt => { }) .AddQQ(opt => { configuration.GetSection("OAuth:QQ").Bind(opt); }) .AddGitee(opt => { configuration.GetSection("OAuth:Gitee").Bind(opt); }); diff --git a/src/NPin.Web/Properties/launchSettings.json b/src/NPin.Web/Properties/launchSettings.json index bc50b86..4d145a1 100644 --- a/src/NPin.Web/Properties/launchSettings.json +++ b/src/NPin.Web/Properties/launchSettings.json @@ -1,41 +1,15 @@ { "$schema": "http://json.schemastore.org/launchsettings.json", - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:27344", - "sslPort": 44340 - } - }, "profiles": { - "http": { + "NPin.Web": { "commandName": "Project", - "dotnetRunMessages": true, "launchBrowser": true, "launchUrl": "swagger", - "applicationUrl": "http://localhost:5122", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "https": { - "commandName": "Project", + }, "dotnetRunMessages": true, - "launchBrowser": true, - "launchUrl": "swagger", - "applicationUrl": "https://localhost:7122;http://localhost:5122", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "IIS Express": { - "commandName": "IISExpress", - "launchBrowser": true, - "launchUrl": "swagger", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } + "applicationUrl": "http://localhost:19001" } } } diff --git a/src/NPin.Web/appsettings.json b/src/NPin.Web/appsettings.json index f2c126b..cbe8703 100644 --- a/src/NPin.Web/appsettings.json +++ b/src/NPin.Web/appsettings.json @@ -1,12 +1,10 @@ { "Logging": { "LogLevel": { - // "Default": "Information", "Default": "Debug", "Microsoft.AspNetCore": "Warning" } }, - "AllowedHosts": "*", "App": { "SelfUrl": "http://*:19001", "CorsOrigins": "http://localhost:19001;http://localhost:18000" @@ -19,6 +17,50 @@ "Postgresql" ], "DbConnOptions": { - + "Url": "DataSource=np-dev.db", + "DbType": "Sqlite", + "EnabledReadWrite": false, + "EnabledCodeFirst": true, + "EnabledSqlLog": true, + "EnabledDbSeed": true, + "EnabledSaasMultiTenancy": false + }, + "Redis": { + "IsEnabled": false, + "Configuration": "192.168.1.100:6379,password=,defaultDatabase=10" + }, + "JwtOptions": { + "Issuer": "NoahLan", + "Audience": "NoahLan", + "SecurityKey": "zqxwcevrbtnymu312412ihe9rfwhe78rh23djoi32hrui3ryf9e8wfh34iuj54y0934uti4h97fgw7hf97wyh8yy69520", + "ExpiresMinuteTime": 86400 + }, + "RefreshJwtOptions": { + "Issuer": "NoahLan", + "Audience": "NoahLan", + "SecurityKey": "67ij4o6jo4i5j6io45j6i4j74p5k6i54ojoi5t9g8ergoj34ofgkrtbmreog894jbioemgropihj48rj4io5juopjgior", + "ExpiresMinuteTime": 172800 + }, + "OAuth": { + "QQ": { + "ClientId": "", + "ClientSecret": "", + "RedirectUri": "" + }, + "Gitee": { + "ClientId": "", + "ClientSecret": "", + "RedirectUri": "" + } + }, + "RbacOptions": { + //超级管理员种子数据默认密码 + "AdminPassword": "123456", + //是否开启验证码验证 + "EnableCaptcha": true, + //是否开启注册功能 + "EnableRegister": false, + //开启定时数据库备份 + "EnableDataBaseBackup": false } } diff --git a/src/NPin.Web/logs/error-20240222.txt b/src/NPin.Web/logs/error-20240222.txt new file mode 100644 index 0000000..69167b4 --- /dev/null +++ b/src/NPin.Web/logs/error-20240222.txt @@ -0,0 +1,327 @@ +2024-02-22 15:07:12.338 +08:00 [FTL] NPin-Framework (Abp.vNext) 爆炸! +System.MissingMethodException: Method not found: 'System.Collections.Generic.List`1 Volo.Abp.DependencyInjection.IOnServiceExposingContext.get_ExposedTypes()'. + at Volo.Abp.ObjectMapping.AbpObjectMappingModule.<>c.b__0_0(IOnServiceExposingContext onServiceExposingContext) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.TriggerServiceExposing(IServiceCollection services, Type implementationType, List`1 serviceTypes) + at Volo.Abp.DependencyInjection.DefaultConventionalRegistrar.AddType(IServiceCollection services, Type type) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.AddTypes(IServiceCollection services, Type[] types) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.AddAssembly(IServiceCollection services, Assembly assembly) + at Microsoft.Extensions.DependencyInjection.ServiceCollectionConventionalRegistrationExtensions.AddAssembly(IServiceCollection services, Assembly assembly) + at Volo.Abp.AbpApplicationBase.ConfigureServicesAsync() + at Volo.Abp.AbpApplicationFactory.CreateAsync[TStartupModule](IServiceCollection services, Action`1 optionsAction) + at Microsoft.Extensions.DependencyInjection.ServiceCollectionApplicationExtensions.AddApplicationAsync[TStartupModule](IServiceCollection services, Action`1 optionsAction) + at Program.
$(String[] args) in D:\Projects\.NetCore\NPin\src\NPin.Web\Program.cs:line 30 +2024-02-22 15:17:54.753 +08:00 [FTL] NPin-Framework (Abp.vNext) 爆炸! +System.MissingMethodException: Method not found: 'System.Collections.Generic.List`1 Volo.Abp.DependencyInjection.IOnServiceExposingContext.get_ExposedTypes()'. + at Volo.Abp.ObjectMapping.AbpObjectMappingModule.<>c.b__0_0(IOnServiceExposingContext onServiceExposingContext) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.TriggerServiceExposing(IServiceCollection services, Type implementationType, List`1 serviceTypes) + at Volo.Abp.DependencyInjection.DefaultConventionalRegistrar.AddType(IServiceCollection services, Type type) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.AddTypes(IServiceCollection services, Type[] types) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.AddAssembly(IServiceCollection services, Assembly assembly) + at Microsoft.Extensions.DependencyInjection.ServiceCollectionConventionalRegistrationExtensions.AddAssembly(IServiceCollection services, Assembly assembly) + at Volo.Abp.AbpApplicationBase.ConfigureServicesAsync() + at Volo.Abp.AbpApplicationFactory.CreateAsync[TStartupModule](IServiceCollection services, Action`1 optionsAction) + at Microsoft.Extensions.DependencyInjection.ServiceCollectionApplicationExtensions.AddApplicationAsync[TStartupModule](IServiceCollection services, Action`1 optionsAction) + at Program.
$(String[] args) in D:\Projects\.NetCore\NPin\src\NPin.Web\Program.cs:line 30 +2024-02-22 15:25:21.415 +08:00 [FTL] NPin-Framework (Abp.vNext) 爆炸! +System.MissingMethodException: Method not found: 'System.Collections.Generic.List`1 Volo.Abp.DependencyInjection.IOnServiceExposingContext.get_ExposedTypes()'. + at Volo.Abp.ObjectMapping.AbpObjectMappingModule.<>c.b__0_0(IOnServiceExposingContext onServiceExposingContext) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.TriggerServiceExposing(IServiceCollection services, Type implementationType, List`1 serviceTypes) + at Volo.Abp.DependencyInjection.DefaultConventionalRegistrar.AddType(IServiceCollection services, Type type) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.AddTypes(IServiceCollection services, Type[] types) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.AddAssembly(IServiceCollection services, Assembly assembly) + at Microsoft.Extensions.DependencyInjection.ServiceCollectionConventionalRegistrationExtensions.AddAssembly(IServiceCollection services, Assembly assembly) + at Volo.Abp.AbpApplicationBase.ConfigureServicesAsync() + at Volo.Abp.AbpApplicationFactory.CreateAsync[TStartupModule](IServiceCollection services, Action`1 optionsAction) + at Microsoft.Extensions.DependencyInjection.ServiceCollectionApplicationExtensions.AddApplicationAsync[TStartupModule](IServiceCollection services, Action`1 optionsAction) + at Program.
$(String[] args) in D:\Projects\.NetCore\NPin\src\NPin.Web\Program.cs:line 30 +2024-02-22 15:30:54.930 +08:00 [FTL] NPin-Framework (Abp.vNext) 爆炸! +System.MissingMethodException: Method not found: 'System.Collections.Generic.List`1 Volo.Abp.DependencyInjection.IOnServiceExposingContext.get_ExposedTypes()'. + at Volo.Abp.ObjectMapping.AbpObjectMappingModule.<>c.b__0_0(IOnServiceExposingContext onServiceExposingContext) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.TriggerServiceExposing(IServiceCollection services, Type implementationType, List`1 serviceTypes) + at Volo.Abp.DependencyInjection.DefaultConventionalRegistrar.AddType(IServiceCollection services, Type type) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.AddTypes(IServiceCollection services, Type[] types) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.AddAssembly(IServiceCollection services, Assembly assembly) + at Microsoft.Extensions.DependencyInjection.ServiceCollectionConventionalRegistrationExtensions.AddAssembly(IServiceCollection services, Assembly assembly) + at Volo.Abp.AbpApplicationBase.ConfigureServicesAsync() + at Volo.Abp.AbpApplicationFactory.CreateAsync[TStartupModule](IServiceCollection services, Action`1 optionsAction) + at Microsoft.Extensions.DependencyInjection.ServiceCollectionApplicationExtensions.AddApplicationAsync[TStartupModule](IServiceCollection services, Action`1 optionsAction) + at Program.
$(String[] args) in D:\Projects\.NetCore\NPin\src\NPin.Web\Program.cs:line 30 +2024-02-22 15:40:34.731 +08:00 [FTL] NPin-Framework (Abp.vNext) 爆炸! +System.MissingMethodException: Method not found: 'System.Collections.Generic.List`1 Volo.Abp.DependencyInjection.IOnServiceExposingContext.get_ExposedTypes()'. + at Volo.Abp.ObjectMapping.AbpObjectMappingModule.<>c.b__0_0(IOnServiceExposingContext onServiceExposingContext) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.TriggerServiceExposing(IServiceCollection services, Type implementationType, List`1 serviceTypes) + at Volo.Abp.DependencyInjection.DefaultConventionalRegistrar.AddType(IServiceCollection services, Type type) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.AddTypes(IServiceCollection services, Type[] types) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.AddAssembly(IServiceCollection services, Assembly assembly) + at Microsoft.Extensions.DependencyInjection.ServiceCollectionConventionalRegistrationExtensions.AddAssembly(IServiceCollection services, Assembly assembly) + at Volo.Abp.AbpApplicationBase.ConfigureServicesAsync() + at Volo.Abp.AbpApplicationFactory.CreateAsync[TStartupModule](IServiceCollection services, Action`1 optionsAction) + at Microsoft.Extensions.DependencyInjection.ServiceCollectionApplicationExtensions.AddApplicationAsync[TStartupModule](IServiceCollection services, Action`1 optionsAction) + at Program.
$(String[] args) in D:\Projects\.NetCore\NPin\src\NPin.Web\Program.cs:line 30 +2024-02-22 16:18:43.136 +08:00 [FTL] NPin-Framework (Abp.vNext) 爆炸! +System.MissingMethodException: Method not found: 'System.Collections.Generic.List`1 Volo.Abp.DependencyInjection.IOnServiceExposingContext.get_ExposedTypes()'. + at Volo.Abp.ObjectMapping.AbpObjectMappingModule.<>c.b__0_0(IOnServiceExposingContext onServiceExposingContext) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.TriggerServiceExposing(IServiceCollection services, Type implementationType, List`1 serviceTypes) + at Volo.Abp.DependencyInjection.DefaultConventionalRegistrar.AddType(IServiceCollection services, Type type) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.AddTypes(IServiceCollection services, Type[] types) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.AddAssembly(IServiceCollection services, Assembly assembly) + at Microsoft.Extensions.DependencyInjection.ServiceCollectionConventionalRegistrationExtensions.AddAssembly(IServiceCollection services, Assembly assembly) + at Volo.Abp.AbpApplicationBase.ConfigureServicesAsync() + at Volo.Abp.AbpApplicationFactory.CreateAsync[TStartupModule](IServiceCollection services, Action`1 optionsAction) + at Microsoft.Extensions.DependencyInjection.ServiceCollectionApplicationExtensions.AddApplicationAsync[TStartupModule](IServiceCollection services, Action`1 optionsAction) + at Program.
$(String[] args) in D:\Projects\.NetCore\NPin\src\NPin.Web\Program.cs:line 30 +2024-02-22 16:23:43.692 +08:00 [FTL] Application startup exception +Autofac.Core.DependencyResolutionException: An exception was thrown while activating Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider. + ---> Autofac.Core.DependencyResolutionException: An exception was thrown while invoking the constructor 'Void .ctor(Microsoft.Extensions.Options.IOptions`1[Microsoft.AspNetCore.Authentication.AuthenticationOptions])' on type 'AuthenticationSchemeProvider'. + ---> System.InvalidOperationException: Scheme already exists: Bearer + at Microsoft.AspNetCore.Authentication.AuthenticationOptions.AddScheme(String name, Action`1 configureBuilder) + at Microsoft.Extensions.Options.OptionsFactory`1.Create(String name) + at Microsoft.Extensions.Options.UnnamedOptionsManager`1.get_Value() + at Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider..ctor(IOptions`1 options, IDictionary`2 schemes) + at lambda_method181(Closure, Object[]) + at Autofac.Core.Activators.Reflection.BoundConstructor.Instantiate() + --- End of inner exception stack trace --- + at Autofac.Core.Activators.Reflection.BoundConstructor.Instantiate() + at Autofac.Core.Activators.Reflection.ReflectionActivator.<>c__DisplayClass14_0.b__0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Builder.RegistrationBuilder`3.<>c__DisplayClass39_0.b__0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.CoreEventMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + --- End of inner exception stack trace --- + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.<>c__DisplayClass5_0.b__0() + at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid id, Func`1 creator) + at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid primaryId, Nullable`1 qualifyingId, Func`1 creator) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request) + at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request) + at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request) + at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request) + at Autofac.Core.Container.ResolveComponent(ResolveRequest request) + at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) + at Autofac.ResolutionExtensions.ResolveOptionalService(IComponentContext context, Service service, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.ResolveOptional(IComponentContext context, Type serviceType, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.ResolveOptional(IComponentContext context, Type serviceType) + at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetService(Type serviceType) + at Microsoft.Extensions.Internal.ActivatorUtilities.ConstructorMatcher.CreateInstance(IServiceProvider provider) + at Microsoft.Extensions.Internal.ActivatorUtilities.CreateInstance(IServiceProvider provider, Type instanceType, Object[] parameters) + at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.ReflectionMiddlewareBinder.CreateMiddleware(RequestDelegate next) + at Microsoft.AspNetCore.Builder.ApplicationBuilder.Build() + at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken) + at Microsoft.Extensions.Hosting.Internal.Host.b__15_1(IHostedService service, CancellationToken token) + at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable`1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List`1 exceptions, Func`3 operation) + at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken) + at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) +2024-02-22 16:23:43.693 +08:00 [ERR] Hosting failed to start +Autofac.Core.DependencyResolutionException: An exception was thrown while activating Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider. + ---> Autofac.Core.DependencyResolutionException: An exception was thrown while invoking the constructor 'Void .ctor(Microsoft.Extensions.Options.IOptions`1[Microsoft.AspNetCore.Authentication.AuthenticationOptions])' on type 'AuthenticationSchemeProvider'. + ---> System.InvalidOperationException: Scheme already exists: Bearer + at Microsoft.AspNetCore.Authentication.AuthenticationOptions.AddScheme(String name, Action`1 configureBuilder) + at Microsoft.Extensions.Options.OptionsFactory`1.Create(String name) + at Microsoft.Extensions.Options.UnnamedOptionsManager`1.get_Value() + at Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider..ctor(IOptions`1 options, IDictionary`2 schemes) + at lambda_method181(Closure, Object[]) + at Autofac.Core.Activators.Reflection.BoundConstructor.Instantiate() + --- End of inner exception stack trace --- + at Autofac.Core.Activators.Reflection.BoundConstructor.Instantiate() + at Autofac.Core.Activators.Reflection.ReflectionActivator.<>c__DisplayClass14_0.b__0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Builder.RegistrationBuilder`3.<>c__DisplayClass39_0.b__0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.CoreEventMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + --- End of inner exception stack trace --- + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.<>c__DisplayClass5_0.b__0() + at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid id, Func`1 creator) + at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid primaryId, Nullable`1 qualifyingId, Func`1 creator) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request) + at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request) + at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request) + at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request) + at Autofac.Core.Container.ResolveComponent(ResolveRequest request) + at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) + at Autofac.ResolutionExtensions.ResolveOptionalService(IComponentContext context, Service service, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.ResolveOptional(IComponentContext context, Type serviceType, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.ResolveOptional(IComponentContext context, Type serviceType) + at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetService(Type serviceType) + at Microsoft.Extensions.Internal.ActivatorUtilities.ConstructorMatcher.CreateInstance(IServiceProvider provider) + at Microsoft.Extensions.Internal.ActivatorUtilities.CreateInstance(IServiceProvider provider, Type instanceType, Object[] parameters) + at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.ReflectionMiddlewareBinder.CreateMiddleware(RequestDelegate next) + at Microsoft.AspNetCore.Builder.ApplicationBuilder.Build() + at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken) + at Microsoft.Extensions.Hosting.Internal.Host.b__15_1(IHostedService service, CancellationToken token) + at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable`1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List`1 exceptions, Func`3 operation) + at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken) + at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) +2024-02-22 16:23:43.702 +08:00 [FTL] NPin-Framework (Abp.vNext) 爆炸! +Autofac.Core.DependencyResolutionException: An exception was thrown while activating Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider. + ---> Autofac.Core.DependencyResolutionException: An exception was thrown while invoking the constructor 'Void .ctor(Microsoft.Extensions.Options.IOptions`1[Microsoft.AspNetCore.Authentication.AuthenticationOptions])' on type 'AuthenticationSchemeProvider'. + ---> System.InvalidOperationException: Scheme already exists: Bearer + at Microsoft.AspNetCore.Authentication.AuthenticationOptions.AddScheme(String name, Action`1 configureBuilder) + at Microsoft.Extensions.Options.OptionsFactory`1.Create(String name) + at Microsoft.Extensions.Options.UnnamedOptionsManager`1.get_Value() + at Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider..ctor(IOptions`1 options, IDictionary`2 schemes) + at lambda_method181(Closure, Object[]) + at Autofac.Core.Activators.Reflection.BoundConstructor.Instantiate() + --- End of inner exception stack trace --- + at Autofac.Core.Activators.Reflection.BoundConstructor.Instantiate() + at Autofac.Core.Activators.Reflection.ReflectionActivator.<>c__DisplayClass14_0.b__0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Builder.RegistrationBuilder`3.<>c__DisplayClass39_0.b__0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.CoreEventMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + --- End of inner exception stack trace --- + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.<>c__DisplayClass5_0.b__0() + at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid id, Func`1 creator) + at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid primaryId, Nullable`1 qualifyingId, Func`1 creator) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request) + at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request) + at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request) + at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request) + at Autofac.Core.Container.ResolveComponent(ResolveRequest request) + at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) + at Autofac.ResolutionExtensions.ResolveOptionalService(IComponentContext context, Service service, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.ResolveOptional(IComponentContext context, Type serviceType, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.ResolveOptional(IComponentContext context, Type serviceType) + at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetService(Type serviceType) + at Microsoft.Extensions.Internal.ActivatorUtilities.ConstructorMatcher.CreateInstance(IServiceProvider provider) + at Microsoft.Extensions.Internal.ActivatorUtilities.CreateInstance(IServiceProvider provider, Type instanceType, Object[] parameters) + at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.ReflectionMiddlewareBinder.CreateMiddleware(RequestDelegate next) + at Microsoft.AspNetCore.Builder.ApplicationBuilder.Build() + at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken) + at Microsoft.Extensions.Hosting.Internal.Host.b__15_1(IHostedService service, CancellationToken token) + at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable`1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List`1 exceptions, Func`3 operation) + at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken) + at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) + at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) + at Program.
$(String[] args) in D:\Projects\.NetCore\NPin\src\NPin.Web\Program.cs:line 33 +2024-02-22 16:24:56.510 +08:00 [ERR] An unhandled exception has occurred while executing the request. +Autofac.Core.DependencyResolutionException: An exception was thrown while activating Volo.Abp.AspNetCore.MultiTenancy.MultiTenancyMiddleware -> Volo.Abp.MultiTenancy.TenantConfigurationProvider -> NPin.Framework.TenantManagement.Domain.TenantStore. + ---> Autofac.Core.DependencyResolutionException: None of the constructors found on type 'NPin.Framework.TenantManagement.Domain.TenantStore' can be invoked with the available services and parameters: +Cannot resolve parameter 'NPin.Framework.TenantManagement.Domain.ISqlSugarTenantRepository tenantRepository' of constructor 'Void .ctor(NPin.Framework.TenantManagement.Domain.ISqlSugarTenantRepository, Volo.Abp.MultiTenancy.ICurrentTenant, Volo.Abp.Caching.IDistributedCache`1[NPin.Framework.TenantManagement.Domain.TenantCacheItem])'. + +See https://autofac.rtfd.io/help/no-constructors-bindable for more info. + at Autofac.Core.Activators.Reflection.ReflectionActivator.<>c__DisplayClass14_0.b__0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Builder.RegistrationBuilder`3.<>c__DisplayClass41_0.b__0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Builder.RegistrationBuilder`3.<>c__DisplayClass39_0.b__0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.CoreEventMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + --- End of inner exception stack trace --- + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request) + at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request) + at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request) + at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request) + at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) + at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType) + at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType) + at Microsoft.AspNetCore.Http.MiddlewareFactory.Create(Type middlewareType) + at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<b__0>d.MoveNext() +--- End of stack trace from previous location --- + at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) + at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context) +2024-02-22 16:24:58.096 +08:00 [ERR] An unhandled exception has occurred while executing the request. +Autofac.Core.DependencyResolutionException: An exception was thrown while activating Volo.Abp.AspNetCore.MultiTenancy.MultiTenancyMiddleware -> Volo.Abp.MultiTenancy.TenantConfigurationProvider -> NPin.Framework.TenantManagement.Domain.TenantStore. + ---> Autofac.Core.DependencyResolutionException: None of the constructors found on type 'NPin.Framework.TenantManagement.Domain.TenantStore' can be invoked with the available services and parameters: +Cannot resolve parameter 'NPin.Framework.TenantManagement.Domain.ISqlSugarTenantRepository tenantRepository' of constructor 'Void .ctor(NPin.Framework.TenantManagement.Domain.ISqlSugarTenantRepository, Volo.Abp.MultiTenancy.ICurrentTenant, Volo.Abp.Caching.IDistributedCache`1[NPin.Framework.TenantManagement.Domain.TenantCacheItem])'. + +See https://autofac.rtfd.io/help/no-constructors-bindable for more info. + at Autofac.Core.Activators.Reflection.ReflectionActivator.<>c__DisplayClass14_0.b__0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Builder.RegistrationBuilder`3.<>c__DisplayClass41_0.b__0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Builder.RegistrationBuilder`3.<>c__DisplayClass39_0.b__0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.CoreEventMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + --- End of inner exception stack trace --- + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request) + at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request) + at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request) + at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request) + at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) + at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType) + at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType) + at Microsoft.AspNetCore.Http.MiddlewareFactory.Create(Type middlewareType) + at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<b__0>d.MoveNext() +--- End of stack trace from previous location --- + at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) + at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context) diff --git a/src/NPin.Web/logs/log-20240222.txt b/src/NPin.Web/logs/log-20240222.txt new file mode 100644 index 0000000..2b23239 --- /dev/null +++ b/src/NPin.Web/logs/log-20240222.txt @@ -0,0 +1,1300 @@ +2024-02-22 15:07:11.922 +08:00 [INF] NPin-Framework (Abp.vNext) 启动! +2024-02-22 15:07:12.338 +08:00 [FTL] NPin-Framework (Abp.vNext) 爆炸! +System.MissingMethodException: Method not found: 'System.Collections.Generic.List`1 Volo.Abp.DependencyInjection.IOnServiceExposingContext.get_ExposedTypes()'. + at Volo.Abp.ObjectMapping.AbpObjectMappingModule.<>c.b__0_0(IOnServiceExposingContext onServiceExposingContext) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.TriggerServiceExposing(IServiceCollection services, Type implementationType, List`1 serviceTypes) + at Volo.Abp.DependencyInjection.DefaultConventionalRegistrar.AddType(IServiceCollection services, Type type) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.AddTypes(IServiceCollection services, Type[] types) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.AddAssembly(IServiceCollection services, Assembly assembly) + at Microsoft.Extensions.DependencyInjection.ServiceCollectionConventionalRegistrationExtensions.AddAssembly(IServiceCollection services, Assembly assembly) + at Volo.Abp.AbpApplicationBase.ConfigureServicesAsync() + at Volo.Abp.AbpApplicationFactory.CreateAsync[TStartupModule](IServiceCollection services, Action`1 optionsAction) + at Microsoft.Extensions.DependencyInjection.ServiceCollectionApplicationExtensions.AddApplicationAsync[TStartupModule](IServiceCollection services, Action`1 optionsAction) + at Program.
$(String[] args) in D:\Projects\.NetCore\NPin\src\NPin.Web\Program.cs:line 30 +2024-02-22 15:17:54.587 +08:00 [INF] NPin-Framework (Abp.vNext) 启动! +2024-02-22 15:17:54.753 +08:00 [FTL] NPin-Framework (Abp.vNext) 爆炸! +System.MissingMethodException: Method not found: 'System.Collections.Generic.List`1 Volo.Abp.DependencyInjection.IOnServiceExposingContext.get_ExposedTypes()'. + at Volo.Abp.ObjectMapping.AbpObjectMappingModule.<>c.b__0_0(IOnServiceExposingContext onServiceExposingContext) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.TriggerServiceExposing(IServiceCollection services, Type implementationType, List`1 serviceTypes) + at Volo.Abp.DependencyInjection.DefaultConventionalRegistrar.AddType(IServiceCollection services, Type type) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.AddTypes(IServiceCollection services, Type[] types) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.AddAssembly(IServiceCollection services, Assembly assembly) + at Microsoft.Extensions.DependencyInjection.ServiceCollectionConventionalRegistrationExtensions.AddAssembly(IServiceCollection services, Assembly assembly) + at Volo.Abp.AbpApplicationBase.ConfigureServicesAsync() + at Volo.Abp.AbpApplicationFactory.CreateAsync[TStartupModule](IServiceCollection services, Action`1 optionsAction) + at Microsoft.Extensions.DependencyInjection.ServiceCollectionApplicationExtensions.AddApplicationAsync[TStartupModule](IServiceCollection services, Action`1 optionsAction) + at Program.
$(String[] args) in D:\Projects\.NetCore\NPin\src\NPin.Web\Program.cs:line 30 +2024-02-22 15:25:21.148 +08:00 [INF] NPin-Framework (Abp.vNext) 启动! +2024-02-22 15:25:21.415 +08:00 [FTL] NPin-Framework (Abp.vNext) 爆炸! +System.MissingMethodException: Method not found: 'System.Collections.Generic.List`1 Volo.Abp.DependencyInjection.IOnServiceExposingContext.get_ExposedTypes()'. + at Volo.Abp.ObjectMapping.AbpObjectMappingModule.<>c.b__0_0(IOnServiceExposingContext onServiceExposingContext) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.TriggerServiceExposing(IServiceCollection services, Type implementationType, List`1 serviceTypes) + at Volo.Abp.DependencyInjection.DefaultConventionalRegistrar.AddType(IServiceCollection services, Type type) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.AddTypes(IServiceCollection services, Type[] types) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.AddAssembly(IServiceCollection services, Assembly assembly) + at Microsoft.Extensions.DependencyInjection.ServiceCollectionConventionalRegistrationExtensions.AddAssembly(IServiceCollection services, Assembly assembly) + at Volo.Abp.AbpApplicationBase.ConfigureServicesAsync() + at Volo.Abp.AbpApplicationFactory.CreateAsync[TStartupModule](IServiceCollection services, Action`1 optionsAction) + at Microsoft.Extensions.DependencyInjection.ServiceCollectionApplicationExtensions.AddApplicationAsync[TStartupModule](IServiceCollection services, Action`1 optionsAction) + at Program.
$(String[] args) in D:\Projects\.NetCore\NPin\src\NPin.Web\Program.cs:line 30 +2024-02-22 15:25:37.132 +08:00 [INF] NPin-Framework (Abp.vNext) 启动! +2024-02-22 15:27:03.325 +08:00 [INF] NPin-Framework (Abp.vNext) 启动! +2024-02-22 15:27:18.887 +08:00 [INF] NPin-Framework (Abp.vNext) 启动! +2024-02-22 15:30:54.769 +08:00 [INF] NPin-Framework (Abp.vNext) 启动! +2024-02-22 15:30:54.930 +08:00 [FTL] NPin-Framework (Abp.vNext) 爆炸! +System.MissingMethodException: Method not found: 'System.Collections.Generic.List`1 Volo.Abp.DependencyInjection.IOnServiceExposingContext.get_ExposedTypes()'. + at Volo.Abp.ObjectMapping.AbpObjectMappingModule.<>c.b__0_0(IOnServiceExposingContext onServiceExposingContext) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.TriggerServiceExposing(IServiceCollection services, Type implementationType, List`1 serviceTypes) + at Volo.Abp.DependencyInjection.DefaultConventionalRegistrar.AddType(IServiceCollection services, Type type) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.AddTypes(IServiceCollection services, Type[] types) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.AddAssembly(IServiceCollection services, Assembly assembly) + at Microsoft.Extensions.DependencyInjection.ServiceCollectionConventionalRegistrationExtensions.AddAssembly(IServiceCollection services, Assembly assembly) + at Volo.Abp.AbpApplicationBase.ConfigureServicesAsync() + at Volo.Abp.AbpApplicationFactory.CreateAsync[TStartupModule](IServiceCollection services, Action`1 optionsAction) + at Microsoft.Extensions.DependencyInjection.ServiceCollectionApplicationExtensions.AddApplicationAsync[TStartupModule](IServiceCollection services, Action`1 optionsAction) + at Program.
$(String[] args) in D:\Projects\.NetCore\NPin\src\NPin.Web\Program.cs:line 30 +2024-02-22 15:38:38.080 +08:00 [INF] NPin-Framework (Abp.vNext) 启动! +2024-02-22 15:40:34.731 +08:00 [FTL] NPin-Framework (Abp.vNext) 爆炸! +System.MissingMethodException: Method not found: 'System.Collections.Generic.List`1 Volo.Abp.DependencyInjection.IOnServiceExposingContext.get_ExposedTypes()'. + at Volo.Abp.ObjectMapping.AbpObjectMappingModule.<>c.b__0_0(IOnServiceExposingContext onServiceExposingContext) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.TriggerServiceExposing(IServiceCollection services, Type implementationType, List`1 serviceTypes) + at Volo.Abp.DependencyInjection.DefaultConventionalRegistrar.AddType(IServiceCollection services, Type type) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.AddTypes(IServiceCollection services, Type[] types) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.AddAssembly(IServiceCollection services, Assembly assembly) + at Microsoft.Extensions.DependencyInjection.ServiceCollectionConventionalRegistrationExtensions.AddAssembly(IServiceCollection services, Assembly assembly) + at Volo.Abp.AbpApplicationBase.ConfigureServicesAsync() + at Volo.Abp.AbpApplicationFactory.CreateAsync[TStartupModule](IServiceCollection services, Action`1 optionsAction) + at Microsoft.Extensions.DependencyInjection.ServiceCollectionApplicationExtensions.AddApplicationAsync[TStartupModule](IServiceCollection services, Action`1 optionsAction) + at Program.
$(String[] args) in D:\Projects\.NetCore\NPin\src\NPin.Web\Program.cs:line 30 +2024-02-22 15:41:04.670 +08:00 [INF] NPin-Framework (Abp.vNext) 启动! +2024-02-22 15:41:57.272 +08:00 [INF] NPin-Framework (Abp.vNext) 启动! +2024-02-22 15:42:29.745 +08:00 [INF] NPin-Framework (Abp.vNext) 启动! +2024-02-22 15:42:50.183 +08:00 [INF] NPin-Framework (Abp.vNext) 启动! +2024-02-22 16:18:42.968 +08:00 [INF] NPin-Framework (Abp.vNext) 启动! +2024-02-22 16:18:43.136 +08:00 [FTL] NPin-Framework (Abp.vNext) 爆炸! +System.MissingMethodException: Method not found: 'System.Collections.Generic.List`1 Volo.Abp.DependencyInjection.IOnServiceExposingContext.get_ExposedTypes()'. + at Volo.Abp.ObjectMapping.AbpObjectMappingModule.<>c.b__0_0(IOnServiceExposingContext onServiceExposingContext) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.TriggerServiceExposing(IServiceCollection services, Type implementationType, List`1 serviceTypes) + at Volo.Abp.DependencyInjection.DefaultConventionalRegistrar.AddType(IServiceCollection services, Type type) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.AddTypes(IServiceCollection services, Type[] types) + at Volo.Abp.DependencyInjection.ConventionalRegistrarBase.AddAssembly(IServiceCollection services, Assembly assembly) + at Microsoft.Extensions.DependencyInjection.ServiceCollectionConventionalRegistrationExtensions.AddAssembly(IServiceCollection services, Assembly assembly) + at Volo.Abp.AbpApplicationBase.ConfigureServicesAsync() + at Volo.Abp.AbpApplicationFactory.CreateAsync[TStartupModule](IServiceCollection services, Action`1 optionsAction) + at Microsoft.Extensions.DependencyInjection.ServiceCollectionApplicationExtensions.AddApplicationAsync[TStartupModule](IServiceCollection services, Action`1 optionsAction) + at Program.
$(String[] args) in D:\Projects\.NetCore\NPin\src\NPin.Web\Program.cs:line 30 +2024-02-22 16:23:37.459 +08:00 [INF] NPin-Framework (Abp.vNext) 启动! +2024-02-22 16:23:39.863 +08:00 [INF] Loaded ABP modules: +2024-02-22 16:23:39.865 +08:00 [INF] - NPin.NPinWebModule +2024-02-22 16:23:39.865 +08:00 [INF] - NPin.SqlSugarCore.NPinSqlSugarCoreModule +2024-02-22 16:23:39.865 +08:00 [INF] - NPin.Domain.NPinDomainModule +2024-02-22 16:23:39.865 +08:00 [INF] - NPin.Domain.Shared.NPinDomainSharedModule +2024-02-22 16:23:39.865 +08:00 [INF] - NPin.Framework.AuditLogging.Domain.Shared.NPinFrameworkAuditLoggingDomainSharedModule +2024-02-22 16:23:39.865 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-02-22 16:23:39.865 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-02-22 16:23:39.865 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-02-22 16:23:39.865 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-02-22 16:23:39.865 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-02-22 16:23:39.865 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-02-22 16:23:39.865 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-02-22 16:23:39.865 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-02-22 16:23:39.865 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-02-22 16:23:39.865 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-02-22 16:23:39.865 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-02-22 16:23:39.865 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-02-22 16:23:39.865 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-02-22 16:23:39.865 +08:00 [INF] - NPin.Framework.TenantManagement.Domain.NPinFrameworkTenantManagementDomainModule +2024-02-22 16:23:39.865 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-02-22 16:23:39.865 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-02-22 16:23:39.865 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-02-22 16:23:39.866 +08:00 [INF] - NPin.Framework.AuditLogging.Domain.NPinFrameworkAuditLoggingDomainModule +2024-02-22 16:23:39.866 +08:00 [INF] - NPin.Framework.Mapster.NPinFrameworkMapsterModule +2024-02-22 16:23:39.866 +08:00 [INF] - NPin.Framework.Core.NPinFrameworkCoreModule +2024-02-22 16:23:39.866 +08:00 [INF] - NPin.Framework.AuditLogging.SqlSugarCore.NPinFrameworkAuditLoggingSqlSugarCoreModule +2024-02-22 16:23:39.866 +08:00 [INF] - NPin.Framework.SqlSugarCore.NPinFrameworkSqlSugarCoreModule +2024-02-22 16:23:39.866 +08:00 [INF] - NPin.Framework.TenantManagement.SqlSugarCore.NPinFrameworkTenantManagementSqlSugarCoreModule +2024-02-22 16:23:39.866 +08:00 [INF] - NPin.Application.NPinApplicationModule +2024-02-22 16:23:39.866 +08:00 [INF] - NPin.Application.Contracts.NPinApplicationContractsModule +2024-02-22 16:23:39.866 +08:00 [INF] - NPin.Framework.TenantManagement.Application.Contracts.NPinFrameworkTenantManagementApplicationContractsModule +2024-02-22 16:23:39.866 +08:00 [INF] - NPin.Framework.Ddd.Application.Contracts.NPinFrameworkDddApplicationContractsModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-02-22 16:23:39.866 +08:00 [INF] - NPin.Framework.TenantManagement.Application.NPinFrameworkTenantManagementApplicationModule +2024-02-22 16:23:39.866 +08:00 [INF] - NPin.Framework.Ddd.Application.NPinFrameworkDddApplicationModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.Swashbuckle.AbpSwashbuckleModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-02-22 16:23:39.866 +08:00 [INF] - Volo.Abp.AspNetCore.Authentication.JwtBearer.AbpAspNetCoreAuthenticationJwtBearerModule +2024-02-22 16:23:39.866 +08:00 [INF] - NPin.Framework.AspNetCore.NPinFrameworkAspNetCoreModule +2024-02-22 16:23:39.866 +08:00 [INF] - NPin.Framework.AspNetCore.Authentication.OAuth.NPinFrameworkAspNetCoreAuthenticationOAuthModule +2024-02-22 16:23:40.846 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:23:40.899 +08:00 [DBG] +==========NPin-SQL========== +CREATE TABLE "NPinTenant"( +"Id" uniqueidentifier NOT NULL PRIMARY KEY , +"Name" varchar(255) NOT NULL , +"EntityVersion" integer NOT NULL , +"TenantConnectionString" varchar(255) NOT NULL , +"DbType" integer NOT NULL , +"IsDeleted" bit NOT NULL , +"DeleterId" uniqueidentifier NULL , +"DeletionTime" datetime NULL , +"LastModificationTime" datetime NULL , +"LastModifierId" uniqueidentifier NULL , +"CreationTime" datetime NOT NULL , +"CreatorId" uniqueidentifier NULL , +"ConcurrencyStamp" varchar(255) NOT NULL ) +============================ + +2024-02-22 16:23:41.134 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:23:41.166 +08:00 [DBG] +==========NPin-SQL========== +CREATE TABLE "NPinAuditLogAction"( +"Id" uniqueidentifier NOT NULL PRIMARY KEY , +"TenantId" uniqueidentifier NULL , +"AuditLogId" uniqueidentifier NOT NULL , +"ServiceName" varchar(255) NULL , +"MethodName" varchar(255) NULL , +"Parameters" varchar(255) NULL , +"ExecutionTime" datetime NULL , +"ExecutionDuration" integer NULL ) +============================ + +2024-02-22 16:23:41.172 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_AuditLogId' +============================ + +2024-02-22 16:23:41.183 +08:00 [DBG] +==========NPin-SQL========== +CREATE INDEX index_AuditLogId ON `NPinAuditLogAction`(`AuditLogId` Asc) +============================ + +2024-02-22 16:23:41.183 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_TenantId_ExecutionTime' +============================ + +2024-02-22 16:23:41.183 +08:00 [DBG] +==========NPin-SQL========== +CREATE INDEX index_TenantId_ExecutionTime ON `NPinAuditLogAction`(`TenantId` Asc,`ServiceName` Asc,`MethodName` Asc,`ExecutionTime` Asc) +============================ + +2024-02-22 16:23:41.293 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:23:41.294 +08:00 [DBG] +==========NPin-SQL========== +CREATE TABLE "NPinAuditLog"( +"Id" uniqueidentifier NOT NULL PRIMARY KEY , +"ApplicationName" varchar(255) NULL , +"UserId" uniqueidentifier NULL , +"UserName" varchar(255) NULL , +"TenantName" varchar(255) NULL , +"ImpersonatorUserId" uniqueidentifier NULL , +"ImpersonatorUserName" varchar(255) NULL , +"ImpersonatorTenantId" uniqueidentifier NULL , +"ImpersonatorTenantName" varchar(255) NULL , +"ExecutionTime" datetime NULL , +"ExecutionDuration" integer NULL , +"ClientIpAddress" varchar(255) NULL , +"ClientName" varchar(255) NULL , +"ClientId" varchar(255) NULL , +"CorrelationId" varchar(255) NULL , +"BrowserInfo" varchar(255) NULL , +"HttpMethod" varchar(255) NULL , +"Url" varchar(255) NULL , +"Exceptions" varchar(255) NULL , +"Comments" varchar(255) NULL , +"HttpStatusCode" integer NULL , +"TenantId" uniqueidentifier NULL , +"ConcurrencyStamp" varchar(255) NOT NULL ) +============================ + +2024-02-22 16:23:41.295 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_ExecutionTime' +============================ + +2024-02-22 16:23:41.296 +08:00 [DBG] +==========NPin-SQL========== +CREATE INDEX index_ExecutionTime ON `NPinAuditLog`(`TenantId` Asc,`ExecutionTime` Asc) +============================ + +2024-02-22 16:23:41.296 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_ExecutionTime_UserId' +============================ + +2024-02-22 16:23:41.296 +08:00 [DBG] +==========NPin-SQL========== +CREATE INDEX index_ExecutionTime_UserId ON `NPinAuditLog`(`TenantId` Asc,`UserId` Asc,`ExecutionTime` Asc) +============================ + +2024-02-22 16:23:41.402 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:23:41.402 +08:00 [DBG] +==========NPin-SQL========== +CREATE TABLE "NPinEntityChange"( +"Id" uniqueidentifier NOT NULL PRIMARY KEY , +"AuditLogId" uniqueidentifier NOT NULL , +"TenantId" uniqueidentifier NULL , +"ChangeTime" datetime NULL , +"ChangeType" integer NULL , +"EntityTenantId" uniqueidentifier NULL , +"EntityId" varchar(255) NULL , +"EntityTypeFullName" varchar(255) NULL ) +============================ + +2024-02-22 16:23:41.403 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_AuditLogId' +============================ + +2024-02-22 16:23:41.403 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_TenantId_EntityId' +============================ + +2024-02-22 16:23:41.403 +08:00 [DBG] +==========NPin-SQL========== +CREATE INDEX index_TenantId_EntityId ON `NPinEntityChange`(`TenantId` Asc,`EntityTypeFullName` Asc,`EntityId` Asc) +============================ + +2024-02-22 16:23:41.502 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:23:41.502 +08:00 [DBG] +==========NPin-SQL========== +CREATE TABLE "NPinEntityPropertyChange"( +"Id" uniqueidentifier NOT NULL PRIMARY KEY , +"TenantId" uniqueidentifier NULL , +"EntityChangeId" uniqueidentifier NULL , +"NewValue" varchar(255) NULL , +"OriginalValue" varchar(255) NULL , +"PropertyName" varchar(255) NULL , +"PropertyTypeFullName" varchar(255) NULL ) +============================ + +2024-02-22 16:23:41.504 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_EntityChangeId' +============================ + +2024-02-22 16:23:41.504 +08:00 [DBG] +==========NPin-SQL========== +CREATE INDEX index_EntityChangeId ON `NPinEntityPropertyChange`(`EntityChangeId` Asc) +============================ + +2024-02-22 16:23:42.867 +08:00 [INF] User profile is available. Using 'C:\Users\NorthLan\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest. +2024-02-22 16:23:43.642 +08:00 [INF] Initialized all ABP modules. +2024-02-22 16:23:43.692 +08:00 [FTL] Application startup exception +Autofac.Core.DependencyResolutionException: An exception was thrown while activating Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider. + ---> Autofac.Core.DependencyResolutionException: An exception was thrown while invoking the constructor 'Void .ctor(Microsoft.Extensions.Options.IOptions`1[Microsoft.AspNetCore.Authentication.AuthenticationOptions])' on type 'AuthenticationSchemeProvider'. + ---> System.InvalidOperationException: Scheme already exists: Bearer + at Microsoft.AspNetCore.Authentication.AuthenticationOptions.AddScheme(String name, Action`1 configureBuilder) + at Microsoft.Extensions.Options.OptionsFactory`1.Create(String name) + at Microsoft.Extensions.Options.UnnamedOptionsManager`1.get_Value() + at Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider..ctor(IOptions`1 options, IDictionary`2 schemes) + at lambda_method181(Closure, Object[]) + at Autofac.Core.Activators.Reflection.BoundConstructor.Instantiate() + --- End of inner exception stack trace --- + at Autofac.Core.Activators.Reflection.BoundConstructor.Instantiate() + at Autofac.Core.Activators.Reflection.ReflectionActivator.<>c__DisplayClass14_0.b__0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Builder.RegistrationBuilder`3.<>c__DisplayClass39_0.b__0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.CoreEventMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + --- End of inner exception stack trace --- + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.<>c__DisplayClass5_0.b__0() + at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid id, Func`1 creator) + at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid primaryId, Nullable`1 qualifyingId, Func`1 creator) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request) + at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request) + at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request) + at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request) + at Autofac.Core.Container.ResolveComponent(ResolveRequest request) + at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) + at Autofac.ResolutionExtensions.ResolveOptionalService(IComponentContext context, Service service, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.ResolveOptional(IComponentContext context, Type serviceType, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.ResolveOptional(IComponentContext context, Type serviceType) + at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetService(Type serviceType) + at Microsoft.Extensions.Internal.ActivatorUtilities.ConstructorMatcher.CreateInstance(IServiceProvider provider) + at Microsoft.Extensions.Internal.ActivatorUtilities.CreateInstance(IServiceProvider provider, Type instanceType, Object[] parameters) + at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.ReflectionMiddlewareBinder.CreateMiddleware(RequestDelegate next) + at Microsoft.AspNetCore.Builder.ApplicationBuilder.Build() + at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken) + at Microsoft.Extensions.Hosting.Internal.Host.b__15_1(IHostedService service, CancellationToken token) + at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable`1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List`1 exceptions, Func`3 operation) + at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken) + at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) +2024-02-22 16:23:43.693 +08:00 [ERR] Hosting failed to start +Autofac.Core.DependencyResolutionException: An exception was thrown while activating Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider. + ---> Autofac.Core.DependencyResolutionException: An exception was thrown while invoking the constructor 'Void .ctor(Microsoft.Extensions.Options.IOptions`1[Microsoft.AspNetCore.Authentication.AuthenticationOptions])' on type 'AuthenticationSchemeProvider'. + ---> System.InvalidOperationException: Scheme already exists: Bearer + at Microsoft.AspNetCore.Authentication.AuthenticationOptions.AddScheme(String name, Action`1 configureBuilder) + at Microsoft.Extensions.Options.OptionsFactory`1.Create(String name) + at Microsoft.Extensions.Options.UnnamedOptionsManager`1.get_Value() + at Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider..ctor(IOptions`1 options, IDictionary`2 schemes) + at lambda_method181(Closure, Object[]) + at Autofac.Core.Activators.Reflection.BoundConstructor.Instantiate() + --- End of inner exception stack trace --- + at Autofac.Core.Activators.Reflection.BoundConstructor.Instantiate() + at Autofac.Core.Activators.Reflection.ReflectionActivator.<>c__DisplayClass14_0.b__0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Builder.RegistrationBuilder`3.<>c__DisplayClass39_0.b__0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.CoreEventMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + --- End of inner exception stack trace --- + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.<>c__DisplayClass5_0.b__0() + at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid id, Func`1 creator) + at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid primaryId, Nullable`1 qualifyingId, Func`1 creator) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request) + at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request) + at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request) + at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request) + at Autofac.Core.Container.ResolveComponent(ResolveRequest request) + at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) + at Autofac.ResolutionExtensions.ResolveOptionalService(IComponentContext context, Service service, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.ResolveOptional(IComponentContext context, Type serviceType, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.ResolveOptional(IComponentContext context, Type serviceType) + at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetService(Type serviceType) + at Microsoft.Extensions.Internal.ActivatorUtilities.ConstructorMatcher.CreateInstance(IServiceProvider provider) + at Microsoft.Extensions.Internal.ActivatorUtilities.CreateInstance(IServiceProvider provider, Type instanceType, Object[] parameters) + at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.ReflectionMiddlewareBinder.CreateMiddleware(RequestDelegate next) + at Microsoft.AspNetCore.Builder.ApplicationBuilder.Build() + at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken) + at Microsoft.Extensions.Hosting.Internal.Host.b__15_1(IHostedService service, CancellationToken token) + at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable`1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List`1 exceptions, Func`3 operation) + at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken) + at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) +2024-02-22 16:23:43.702 +08:00 [FTL] NPin-Framework (Abp.vNext) 爆炸! +Autofac.Core.DependencyResolutionException: An exception was thrown while activating Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider. + ---> Autofac.Core.DependencyResolutionException: An exception was thrown while invoking the constructor 'Void .ctor(Microsoft.Extensions.Options.IOptions`1[Microsoft.AspNetCore.Authentication.AuthenticationOptions])' on type 'AuthenticationSchemeProvider'. + ---> System.InvalidOperationException: Scheme already exists: Bearer + at Microsoft.AspNetCore.Authentication.AuthenticationOptions.AddScheme(String name, Action`1 configureBuilder) + at Microsoft.Extensions.Options.OptionsFactory`1.Create(String name) + at Microsoft.Extensions.Options.UnnamedOptionsManager`1.get_Value() + at Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider..ctor(IOptions`1 options, IDictionary`2 schemes) + at lambda_method181(Closure, Object[]) + at Autofac.Core.Activators.Reflection.BoundConstructor.Instantiate() + --- End of inner exception stack trace --- + at Autofac.Core.Activators.Reflection.BoundConstructor.Instantiate() + at Autofac.Core.Activators.Reflection.ReflectionActivator.<>c__DisplayClass14_0.b__0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Builder.RegistrationBuilder`3.<>c__DisplayClass39_0.b__0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.CoreEventMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + --- End of inner exception stack trace --- + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.<>c__DisplayClass5_0.b__0() + at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid id, Func`1 creator) + at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid primaryId, Nullable`1 qualifyingId, Func`1 creator) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request) + at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request) + at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request) + at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request) + at Autofac.Core.Container.ResolveComponent(ResolveRequest request) + at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) + at Autofac.ResolutionExtensions.ResolveOptionalService(IComponentContext context, Service service, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.ResolveOptional(IComponentContext context, Type serviceType, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.ResolveOptional(IComponentContext context, Type serviceType) + at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetService(Type serviceType) + at Microsoft.Extensions.Internal.ActivatorUtilities.ConstructorMatcher.CreateInstance(IServiceProvider provider) + at Microsoft.Extensions.Internal.ActivatorUtilities.CreateInstance(IServiceProvider provider, Type instanceType, Object[] parameters) + at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.ReflectionMiddlewareBinder.CreateMiddleware(RequestDelegate next) + at Microsoft.AspNetCore.Builder.ApplicationBuilder.Build() + at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken) + at Microsoft.Extensions.Hosting.Internal.Host.b__15_1(IHostedService service, CancellationToken token) + at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable`1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List`1 exceptions, Func`3 operation) + at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken) + at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) + at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) + at Program.
$(String[] args) in D:\Projects\.NetCore\NPin\src\NPin.Web\Program.cs:line 33 +2024-02-22 16:24:54.553 +08:00 [INF] NPin-Framework (Abp.vNext) 启动! +2024-02-22 16:24:55.311 +08:00 [INF] Loaded ABP modules: +2024-02-22 16:24:55.313 +08:00 [INF] - NPin.NPinWebModule +2024-02-22 16:24:55.313 +08:00 [INF] - NPin.SqlSugarCore.NPinSqlSugarCoreModule +2024-02-22 16:24:55.313 +08:00 [INF] - NPin.Domain.NPinDomainModule +2024-02-22 16:24:55.313 +08:00 [INF] - NPin.Domain.Shared.NPinDomainSharedModule +2024-02-22 16:24:55.313 +08:00 [INF] - NPin.Framework.AuditLogging.Domain.Shared.NPinFrameworkAuditLoggingDomainSharedModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-02-22 16:24:55.313 +08:00 [INF] - NPin.Framework.TenantManagement.Domain.NPinFrameworkTenantManagementDomainModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-02-22 16:24:55.313 +08:00 [INF] - NPin.Framework.AuditLogging.Domain.NPinFrameworkAuditLoggingDomainModule +2024-02-22 16:24:55.313 +08:00 [INF] - NPin.Framework.Mapster.NPinFrameworkMapsterModule +2024-02-22 16:24:55.313 +08:00 [INF] - NPin.Framework.Core.NPinFrameworkCoreModule +2024-02-22 16:24:55.313 +08:00 [INF] - NPin.Framework.AuditLogging.SqlSugarCore.NPinFrameworkAuditLoggingSqlSugarCoreModule +2024-02-22 16:24:55.313 +08:00 [INF] - NPin.Framework.SqlSugarCore.NPinFrameworkSqlSugarCoreModule +2024-02-22 16:24:55.313 +08:00 [INF] - NPin.Framework.TenantManagement.SqlSugarCore.NPinFrameworkTenantManagementSqlSugarCoreModule +2024-02-22 16:24:55.313 +08:00 [INF] - NPin.Application.NPinApplicationModule +2024-02-22 16:24:55.313 +08:00 [INF] - NPin.Application.Contracts.NPinApplicationContractsModule +2024-02-22 16:24:55.313 +08:00 [INF] - NPin.Framework.TenantManagement.Application.Contracts.NPinFrameworkTenantManagementApplicationContractsModule +2024-02-22 16:24:55.313 +08:00 [INF] - NPin.Framework.Ddd.Application.Contracts.NPinFrameworkDddApplicationContractsModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-02-22 16:24:55.313 +08:00 [INF] - NPin.Framework.TenantManagement.Application.NPinFrameworkTenantManagementApplicationModule +2024-02-22 16:24:55.313 +08:00 [INF] - NPin.Framework.Ddd.Application.NPinFrameworkDddApplicationModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.Swashbuckle.AbpSwashbuckleModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-02-22 16:24:55.313 +08:00 [INF] - Volo.Abp.AspNetCore.Authentication.JwtBearer.AbpAspNetCoreAuthenticationJwtBearerModule +2024-02-22 16:24:55.313 +08:00 [INF] - NPin.Framework.AspNetCore.NPinFrameworkAspNetCoreModule +2024-02-22 16:24:55.313 +08:00 [INF] - NPin.Framework.AspNetCore.Authentication.OAuth.NPinFrameworkAspNetCoreAuthenticationOAuthModule +2024-02-22 16:24:55.588 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:24:55.632 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:24:55.633 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_AuditLogId' +============================ + +2024-02-22 16:24:55.633 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_TenantId_ExecutionTime' +============================ + +2024-02-22 16:24:55.642 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:24:55.642 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_ExecutionTime' +============================ + +2024-02-22 16:24:55.642 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_ExecutionTime_UserId' +============================ + +2024-02-22 16:24:55.644 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:24:55.644 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_AuditLogId' +============================ + +2024-02-22 16:24:55.644 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_TenantId_EntityId' +============================ + +2024-02-22 16:24:55.646 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:24:55.647 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_EntityChangeId' +============================ + +2024-02-22 16:24:56.020 +08:00 [INF] User profile is available. Using 'C:\Users\NorthLan\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest. +2024-02-22 16:24:56.087 +08:00 [INF] Initialized all ABP modules. +2024-02-22 16:24:56.155 +08:00 [INF] Now listening on: http://[::]:19001 +2024-02-22 16:24:56.155 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-02-22 16:24:56.155 +08:00 [INF] Hosting environment: Development +2024-02-22 16:24:56.155 +08:00 [INF] Content root path: D:\Projects\.NetCore\NPin\src\NPin.Web +2024-02-22 16:24:56.510 +08:00 [ERR] An unhandled exception has occurred while executing the request. +Autofac.Core.DependencyResolutionException: An exception was thrown while activating Volo.Abp.AspNetCore.MultiTenancy.MultiTenancyMiddleware -> Volo.Abp.MultiTenancy.TenantConfigurationProvider -> NPin.Framework.TenantManagement.Domain.TenantStore. + ---> Autofac.Core.DependencyResolutionException: None of the constructors found on type 'NPin.Framework.TenantManagement.Domain.TenantStore' can be invoked with the available services and parameters: +Cannot resolve parameter 'NPin.Framework.TenantManagement.Domain.ISqlSugarTenantRepository tenantRepository' of constructor 'Void .ctor(NPin.Framework.TenantManagement.Domain.ISqlSugarTenantRepository, Volo.Abp.MultiTenancy.ICurrentTenant, Volo.Abp.Caching.IDistributedCache`1[NPin.Framework.TenantManagement.Domain.TenantCacheItem])'. + +See https://autofac.rtfd.io/help/no-constructors-bindable for more info. + at Autofac.Core.Activators.Reflection.ReflectionActivator.<>c__DisplayClass14_0.b__0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Builder.RegistrationBuilder`3.<>c__DisplayClass41_0.b__0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Builder.RegistrationBuilder`3.<>c__DisplayClass39_0.b__0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.CoreEventMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + --- End of inner exception stack trace --- + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request) + at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request) + at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request) + at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request) + at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) + at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType) + at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType) + at Microsoft.AspNetCore.Http.MiddlewareFactory.Create(Type middlewareType) + at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<b__0>d.MoveNext() +--- End of stack trace from previous location --- + at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) + at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context) +2024-02-22 16:24:58.096 +08:00 [ERR] An unhandled exception has occurred while executing the request. +Autofac.Core.DependencyResolutionException: An exception was thrown while activating Volo.Abp.AspNetCore.MultiTenancy.MultiTenancyMiddleware -> Volo.Abp.MultiTenancy.TenantConfigurationProvider -> NPin.Framework.TenantManagement.Domain.TenantStore. + ---> Autofac.Core.DependencyResolutionException: None of the constructors found on type 'NPin.Framework.TenantManagement.Domain.TenantStore' can be invoked with the available services and parameters: +Cannot resolve parameter 'NPin.Framework.TenantManagement.Domain.ISqlSugarTenantRepository tenantRepository' of constructor 'Void .ctor(NPin.Framework.TenantManagement.Domain.ISqlSugarTenantRepository, Volo.Abp.MultiTenancy.ICurrentTenant, Volo.Abp.Caching.IDistributedCache`1[NPin.Framework.TenantManagement.Domain.TenantCacheItem])'. + +See https://autofac.rtfd.io/help/no-constructors-bindable for more info. + at Autofac.Core.Activators.Reflection.ReflectionActivator.<>c__DisplayClass14_0.b__0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Builder.RegistrationBuilder`3.<>c__DisplayClass41_0.b__0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Builder.RegistrationBuilder`3.<>c__DisplayClass39_0.b__0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.CoreEventMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + --- End of inner exception stack trace --- + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request) + at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request) + at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request) + at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request) + at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) + at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType) + at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType) + at Microsoft.AspNetCore.Http.MiddlewareFactory.Create(Type middlewareType) + at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<b__0>d.MoveNext() +--- End of stack trace from previous location --- + at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) + at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context) +2024-02-22 16:29:49.521 +08:00 [INF] Application is shutting down... +2024-02-22 16:29:57.916 +08:00 [INF] NPin-Framework (Abp.vNext) 启动! +2024-02-22 16:29:58.708 +08:00 [INF] Loaded ABP modules: +2024-02-22 16:29:58.710 +08:00 [INF] - NPin.NPinWebModule +2024-02-22 16:29:58.710 +08:00 [INF] - NPin.SqlSugarCore.NPinSqlSugarCoreModule +2024-02-22 16:29:58.710 +08:00 [INF] - NPin.Domain.NPinDomainModule +2024-02-22 16:29:58.710 +08:00 [INF] - NPin.Domain.Shared.NPinDomainSharedModule +2024-02-22 16:29:58.710 +08:00 [INF] - NPin.Framework.AuditLogging.Domain.Shared.NPinFrameworkAuditLoggingDomainSharedModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-02-22 16:29:58.710 +08:00 [INF] - NPin.Framework.TenantManagement.Domain.NPinFrameworkTenantManagementDomainModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-02-22 16:29:58.710 +08:00 [INF] - NPin.Framework.AuditLogging.Domain.NPinFrameworkAuditLoggingDomainModule +2024-02-22 16:29:58.710 +08:00 [INF] - NPin.Framework.Mapster.NPinFrameworkMapsterModule +2024-02-22 16:29:58.710 +08:00 [INF] - NPin.Framework.Core.NPinFrameworkCoreModule +2024-02-22 16:29:58.710 +08:00 [INF] - NPin.Framework.AuditLogging.SqlSugarCore.NPinFrameworkAuditLoggingSqlSugarCoreModule +2024-02-22 16:29:58.710 +08:00 [INF] - NPin.Framework.SqlSugarCore.NPinFrameworkSqlSugarCoreModule +2024-02-22 16:29:58.710 +08:00 [INF] - NPin.Framework.TenantManagement.SqlSugarCore.NPinFrameworkTenantManagementSqlSugarCoreModule +2024-02-22 16:29:58.710 +08:00 [INF] - NPin.Application.NPinApplicationModule +2024-02-22 16:29:58.710 +08:00 [INF] - NPin.Application.Contracts.NPinApplicationContractsModule +2024-02-22 16:29:58.710 +08:00 [INF] - NPin.Framework.TenantManagement.Application.Contracts.NPinFrameworkTenantManagementApplicationContractsModule +2024-02-22 16:29:58.710 +08:00 [INF] - NPin.Framework.Ddd.Application.Contracts.NPinFrameworkDddApplicationContractsModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-02-22 16:29:58.710 +08:00 [INF] - NPin.Framework.TenantManagement.Application.NPinFrameworkTenantManagementApplicationModule +2024-02-22 16:29:58.710 +08:00 [INF] - NPin.Framework.Ddd.Application.NPinFrameworkDddApplicationModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.Swashbuckle.AbpSwashbuckleModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-02-22 16:29:58.710 +08:00 [INF] - Volo.Abp.AspNetCore.Authentication.JwtBearer.AbpAspNetCoreAuthenticationJwtBearerModule +2024-02-22 16:29:58.710 +08:00 [INF] - NPin.Framework.AspNetCore.NPinFrameworkAspNetCoreModule +2024-02-22 16:29:58.710 +08:00 [INF] - NPin.Framework.AspNetCore.Authentication.OAuth.NPinFrameworkAspNetCoreAuthenticationOAuthModule +2024-02-22 16:29:59.001 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:29:59.047 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:29:59.048 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_AuditLogId' +============================ + +2024-02-22 16:29:59.048 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_TenantId_ExecutionTime' +============================ + +2024-02-22 16:29:59.056 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:29:59.057 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_ExecutionTime' +============================ + +2024-02-22 16:29:59.057 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_ExecutionTime_UserId' +============================ + +2024-02-22 16:29:59.059 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:29:59.059 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_AuditLogId' +============================ + +2024-02-22 16:29:59.059 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_TenantId_EntityId' +============================ + +2024-02-22 16:29:59.061 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:29:59.062 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_EntityChangeId' +============================ + +2024-02-22 16:29:59.431 +08:00 [INF] User profile is available. Using 'C:\Users\NorthLan\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest. +2024-02-22 16:29:59.492 +08:00 [INF] Initialized all ABP modules. +2024-02-22 16:29:59.557 +08:00 [INF] Now listening on: http://[::]:19001 +2024-02-22 16:29:59.557 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-02-22 16:29:59.557 +08:00 [INF] Hosting environment: Development +2024-02-22 16:29:59.557 +08:00 [INF] Content root path: D:\Projects\.NetCore\NPin\src\NPin.Web +2024-02-22 16:31:56.368 +08:00 [INF] Application is shutting down... +2024-02-22 16:32:00.465 +08:00 [INF] NPin-Framework (Abp.vNext) 启动! +2024-02-22 16:32:01.213 +08:00 [INF] Loaded ABP modules: +2024-02-22 16:32:01.215 +08:00 [INF] - NPin.NPinWebModule +2024-02-22 16:32:01.215 +08:00 [INF] - NPin.SqlSugarCore.NPinSqlSugarCoreModule +2024-02-22 16:32:01.215 +08:00 [INF] - NPin.Domain.NPinDomainModule +2024-02-22 16:32:01.215 +08:00 [INF] - NPin.Domain.Shared.NPinDomainSharedModule +2024-02-22 16:32:01.215 +08:00 [INF] - NPin.Framework.AuditLogging.Domain.Shared.NPinFrameworkAuditLoggingDomainSharedModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-02-22 16:32:01.215 +08:00 [INF] - NPin.Framework.TenantManagement.Domain.NPinFrameworkTenantManagementDomainModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-02-22 16:32:01.215 +08:00 [INF] - NPin.Framework.AuditLogging.Domain.NPinFrameworkAuditLoggingDomainModule +2024-02-22 16:32:01.215 +08:00 [INF] - NPin.Framework.Mapster.NPinFrameworkMapsterModule +2024-02-22 16:32:01.215 +08:00 [INF] - NPin.Framework.Core.NPinFrameworkCoreModule +2024-02-22 16:32:01.215 +08:00 [INF] - NPin.Framework.AuditLogging.SqlSugarCore.NPinFrameworkAuditLoggingSqlSugarCoreModule +2024-02-22 16:32:01.215 +08:00 [INF] - NPin.Framework.SqlSugarCore.NPinFrameworkSqlSugarCoreModule +2024-02-22 16:32:01.215 +08:00 [INF] - NPin.Framework.TenantManagement.SqlSugarCore.NPinFrameworkTenantManagementSqlSugarCoreModule +2024-02-22 16:32:01.215 +08:00 [INF] - NPin.Application.NPinApplicationModule +2024-02-22 16:32:01.215 +08:00 [INF] - NPin.Application.Contracts.NPinApplicationContractsModule +2024-02-22 16:32:01.215 +08:00 [INF] - NPin.Framework.TenantManagement.Application.Contracts.NPinFrameworkTenantManagementApplicationContractsModule +2024-02-22 16:32:01.215 +08:00 [INF] - NPin.Framework.Ddd.Application.Contracts.NPinFrameworkDddApplicationContractsModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-02-22 16:32:01.215 +08:00 [INF] - NPin.Framework.TenantManagement.Application.NPinFrameworkTenantManagementApplicationModule +2024-02-22 16:32:01.215 +08:00 [INF] - NPin.Framework.Ddd.Application.NPinFrameworkDddApplicationModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.Swashbuckle.AbpSwashbuckleModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-02-22 16:32:01.215 +08:00 [INF] - Volo.Abp.AspNetCore.Authentication.JwtBearer.AbpAspNetCoreAuthenticationJwtBearerModule +2024-02-22 16:32:01.215 +08:00 [INF] - NPin.Framework.AspNetCore.NPinFrameworkAspNetCoreModule +2024-02-22 16:32:01.215 +08:00 [INF] - NPin.Framework.AspNetCore.Authentication.OAuth.NPinFrameworkAspNetCoreAuthenticationOAuthModule +2024-02-22 16:32:01.479 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:32:01.523 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:32:01.523 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_AuditLogId' +============================ + +2024-02-22 16:32:01.524 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_TenantId_ExecutionTime' +============================ + +2024-02-22 16:32:01.532 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:32:01.532 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_ExecutionTime' +============================ + +2024-02-22 16:32:01.533 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_ExecutionTime_UserId' +============================ + +2024-02-22 16:32:01.535 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:32:01.535 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_AuditLogId' +============================ + +2024-02-22 16:32:01.535 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_TenantId_EntityId' +============================ + +2024-02-22 16:32:01.536 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:32:01.537 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_EntityChangeId' +============================ + +2024-02-22 16:32:01.925 +08:00 [INF] User profile is available. Using 'C:\Users\NorthLan\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest. +2024-02-22 16:32:01.988 +08:00 [INF] Initialized all ABP modules. +2024-02-22 16:32:02.054 +08:00 [INF] Now listening on: http://[::]:19001 +2024-02-22 16:32:02.054 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-02-22 16:32:02.055 +08:00 [INF] Hosting environment: Development +2024-02-22 16:32:02.055 +08:00 [INF] Content root path: D:\Projects\.NetCore\NPin\src\NPin.Web +2024-02-22 16:35:20.315 +08:00 [INF] Application is shutting down... +2024-02-22 16:35:24.135 +08:00 [INF] NPin-Framework (Abp.vNext) 启动! +2024-02-22 16:35:24.821 +08:00 [INF] Loaded ABP modules: +2024-02-22 16:35:24.823 +08:00 [INF] - NPin.NPinWebModule +2024-02-22 16:35:24.823 +08:00 [INF] - NPin.SqlSugarCore.NPinSqlSugarCoreModule +2024-02-22 16:35:24.823 +08:00 [INF] - NPin.Domain.NPinDomainModule +2024-02-22 16:35:24.823 +08:00 [INF] - NPin.Domain.Shared.NPinDomainSharedModule +2024-02-22 16:35:24.823 +08:00 [INF] - NPin.Framework.AuditLogging.Domain.Shared.NPinFrameworkAuditLoggingDomainSharedModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-02-22 16:35:24.823 +08:00 [INF] - NPin.Framework.TenantManagement.Domain.NPinFrameworkTenantManagementDomainModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-02-22 16:35:24.823 +08:00 [INF] - NPin.Framework.AuditLogging.Domain.NPinFrameworkAuditLoggingDomainModule +2024-02-22 16:35:24.823 +08:00 [INF] - NPin.Framework.Mapster.NPinFrameworkMapsterModule +2024-02-22 16:35:24.823 +08:00 [INF] - NPin.Framework.Core.NPinFrameworkCoreModule +2024-02-22 16:35:24.823 +08:00 [INF] - NPin.Framework.AuditLogging.SqlSugarCore.NPinFrameworkAuditLoggingSqlSugarCoreModule +2024-02-22 16:35:24.823 +08:00 [INF] - NPin.Framework.SqlSugarCore.NPinFrameworkSqlSugarCoreModule +2024-02-22 16:35:24.823 +08:00 [INF] - NPin.Framework.TenantManagement.SqlSugarCore.NPinFrameworkTenantManagementSqlSugarCoreModule +2024-02-22 16:35:24.823 +08:00 [INF] - NPin.Application.NPinApplicationModule +2024-02-22 16:35:24.823 +08:00 [INF] - NPin.Application.Contracts.NPinApplicationContractsModule +2024-02-22 16:35:24.823 +08:00 [INF] - NPin.Framework.TenantManagement.Application.Contracts.NPinFrameworkTenantManagementApplicationContractsModule +2024-02-22 16:35:24.823 +08:00 [INF] - NPin.Framework.Ddd.Application.Contracts.NPinFrameworkDddApplicationContractsModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-02-22 16:35:24.823 +08:00 [INF] - NPin.Framework.TenantManagement.Application.NPinFrameworkTenantManagementApplicationModule +2024-02-22 16:35:24.823 +08:00 [INF] - NPin.Framework.Ddd.Application.NPinFrameworkDddApplicationModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.Swashbuckle.AbpSwashbuckleModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-02-22 16:35:24.823 +08:00 [INF] - Volo.Abp.AspNetCore.Authentication.JwtBearer.AbpAspNetCoreAuthenticationJwtBearerModule +2024-02-22 16:35:24.823 +08:00 [INF] - NPin.Framework.AspNetCore.NPinFrameworkAspNetCoreModule +2024-02-22 16:35:24.823 +08:00 [INF] - NPin.Framework.AspNetCore.Authentication.OAuth.NPinFrameworkAspNetCoreAuthenticationOAuthModule +2024-02-22 16:35:25.100 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:35:25.151 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:35:25.151 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_AuditLogId' +============================ + +2024-02-22 16:35:25.152 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_TenantId_ExecutionTime' +============================ + +2024-02-22 16:35:25.160 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:35:25.160 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_ExecutionTime' +============================ + +2024-02-22 16:35:25.160 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_ExecutionTime_UserId' +============================ + +2024-02-22 16:35:25.162 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:35:25.163 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_AuditLogId' +============================ + +2024-02-22 16:35:25.163 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_TenantId_EntityId' +============================ + +2024-02-22 16:35:25.164 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:35:25.165 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_EntityChangeId' +============================ + +2024-02-22 16:35:25.546 +08:00 [INF] User profile is available. Using 'C:\Users\NorthLan\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest. +2024-02-22 16:35:25.615 +08:00 [INF] Initialized all ABP modules. +2024-02-22 16:35:25.690 +08:00 [INF] Now listening on: http://[::]:19001 +2024-02-22 16:35:25.690 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-02-22 16:35:25.690 +08:00 [INF] Hosting environment: Development +2024-02-22 16:35:25.690 +08:00 [INF] Content root path: D:\Projects\.NetCore\NPin\src\NPin.Web +2024-02-22 16:40:43.487 +08:00 [INF] Application is shutting down... +2024-02-22 16:40:48.987 +08:00 [INF] NPin-Framework (Abp.vNext) 启动! +2024-02-22 16:40:51.335 +08:00 [INF] Loaded ABP modules: +2024-02-22 16:40:51.336 +08:00 [INF] - NPin.NPinWebModule +2024-02-22 16:40:51.336 +08:00 [INF] - NPin.SqlSugarCore.NPinSqlSugarCoreModule +2024-02-22 16:40:51.336 +08:00 [INF] - NPin.Domain.NPinDomainModule +2024-02-22 16:40:51.336 +08:00 [INF] - NPin.Domain.Shared.NPinDomainSharedModule +2024-02-22 16:40:51.336 +08:00 [INF] - NPin.Framework.AuditLogging.Domain.Shared.NPinFrameworkAuditLoggingDomainSharedModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-02-22 16:40:51.336 +08:00 [INF] - NPin.Framework.TenantManagement.Domain.NPinFrameworkTenantManagementDomainModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-02-22 16:40:51.336 +08:00 [INF] - NPin.Framework.AuditLogging.Domain.NPinFrameworkAuditLoggingDomainModule +2024-02-22 16:40:51.336 +08:00 [INF] - NPin.Framework.Mapster.NPinFrameworkMapsterModule +2024-02-22 16:40:51.336 +08:00 [INF] - NPin.Framework.Core.NPinFrameworkCoreModule +2024-02-22 16:40:51.336 +08:00 [INF] - NPin.Framework.AuditLogging.SqlSugarCore.NPinFrameworkAuditLoggingSqlSugarCoreModule +2024-02-22 16:40:51.336 +08:00 [INF] - NPin.Framework.SqlSugarCore.NPinFrameworkSqlSugarCoreModule +2024-02-22 16:40:51.336 +08:00 [INF] - NPin.Framework.TenantManagement.SqlSugarCore.NPinFrameworkTenantManagementSqlSugarCoreModule +2024-02-22 16:40:51.336 +08:00 [INF] - NPin.Application.NPinApplicationModule +2024-02-22 16:40:51.336 +08:00 [INF] - NPin.Application.Contracts.NPinApplicationContractsModule +2024-02-22 16:40:51.336 +08:00 [INF] - NPin.Framework.TenantManagement.Application.Contracts.NPinFrameworkTenantManagementApplicationContractsModule +2024-02-22 16:40:51.336 +08:00 [INF] - NPin.Framework.Ddd.Application.Contracts.NPinFrameworkDddApplicationContractsModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-02-22 16:40:51.336 +08:00 [INF] - NPin.Framework.TenantManagement.Application.NPinFrameworkTenantManagementApplicationModule +2024-02-22 16:40:51.336 +08:00 [INF] - NPin.Framework.Ddd.Application.NPinFrameworkDddApplicationModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.Swashbuckle.AbpSwashbuckleModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-02-22 16:40:51.336 +08:00 [INF] - Volo.Abp.AspNetCore.Authentication.JwtBearer.AbpAspNetCoreAuthenticationJwtBearerModule +2024-02-22 16:40:51.336 +08:00 [INF] - NPin.Framework.AspNetCore.NPinFrameworkAspNetCoreModule +2024-02-22 16:40:51.336 +08:00 [INF] - NPin.Framework.AspNetCore.Authentication.OAuth.NPinFrameworkAspNetCoreAuthenticationOAuthModule +2024-02-22 16:40:51.673 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:40:51.710 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:40:51.711 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_AuditLogId' +============================ + +2024-02-22 16:40:51.712 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_TenantId_ExecutionTime' +============================ + +2024-02-22 16:40:51.721 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:40:51.722 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_ExecutionTime' +============================ + +2024-02-22 16:40:51.722 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_ExecutionTime_UserId' +============================ + +2024-02-22 16:40:51.724 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:40:51.724 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_AuditLogId' +============================ + +2024-02-22 16:40:51.724 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_TenantId_EntityId' +============================ + +2024-02-22 16:40:51.726 +08:00 [DBG] +==========NPin-SQL========== +select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +============================ + +2024-02-22 16:40:51.726 +08:00 [DBG] +==========NPin-SQL========== +SELECT count(*) FROM sqlite_master WHERE name = 'index_EntityChangeId' +============================ + +2024-02-22 16:40:52.129 +08:00 [INF] User profile is available. Using 'C:\Users\NorthLan\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest. +2024-02-22 16:40:52.201 +08:00 [INF] Initialized all ABP modules. +2024-02-22 16:40:52.358 +08:00 [INF] Now listening on: http://[::]:19001 +2024-02-22 16:40:52.358 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-02-22 16:40:52.358 +08:00 [INF] Hosting environment: Development +2024-02-22 16:40:52.358 +08:00 [INF] Content root path: D:\Projects\.NetCore\NPin\src\NPin.Web diff --git a/src/NPin.Web/np-dev.db b/src/NPin.Web/np-dev.db new file mode 100644 index 0000000000000000000000000000000000000000..394241d18f341e0ee0e17a811649305fc3c69818 GIT binary patch literal 69632 zcmeI(K~LLe9LMn(NJ610R6F=ERWeLWtyH#AgsN#mTN<)0D-EpBZasmUJbRTjuVBYL_7ev?vD1{J^+h60;>VAl=kxshkFAuwAGa+}7)OqK zYI??cZZW56xo-?3m&@hl?@jp|{>;lKGvN#QuNHZp_B5aS?C9Up!hf>gKXRpa3;)dj zU8>FhF!#3b``p9ANBPe5pZR;!d2M~_FWDgRr*~tqsBdg)z5ABk6lcN1LDlvw@4Rwi z+Q*{StnXU3dS};l+QJRD+^jsVmiMbht-e+L*+|;c*r^+bX}cfZK8zpd&?t8rcV7Q; zqo{9gY8MNh`Mf34_D*|$p+Bho@`LTFv7FXy`F3e;xz=1Zy0-PAE3BrFQ$DhUYt(o4 zjrx=AZDaRw?NRyhGvi_PnQ>RP-WRrMd&&Fw?Sn?~86|Z;Xj&Jqo|>($STP+V zzM{ufA?r;=U(3gQC4p zF!tDzCZ5}a7F%66AWu5QD=kaNkF<8V*>pvxlY089c4KGU?<&0nR26%CG!v`m zM5|tL>_%6z*o|}9+i81v%!7(AKbG&$7W9WJ;|gPVYO10bzPi?{6pDIvO?!PSQgFiI z9Sm~fSH|eMUvBtD#f18kyzfXMQXPyI$UWh{v>L)sQ@={8#f-cW8n^2|7mTK^ef`{IiTLl zzrCjw^`#~4x6cP_sa*XvRL`bH*G_G?!kQ)3%h)2QtD>h;Po8O!`W$Pd4lgT(ErK(0 z&vPyNc$ho3%hq%MQa7!`T4zhN)&pd{D(#Vfgc1AKmY**5I_I{1Q0*~0R#}ps=%B-G4B7fy1dK_0R#|0009ILKmY** z5I_KdK!ET62?7ELAb{+|pWfB*srAbku8Z$!#5I_I{1Q0*~0R#|0009KJ|0e?oAb