hi
Please share your authserver.csproj file content.
hi
Call the IdentityServiceEfCoreEntityExtensionMappings.Configure(); in the Auth Sever module's PreConfigureServices
public override void PreConfigureServices(ServiceConfigurationContext context)
{
IdentityServiceEfCoreEntityExtensionMappings.Configure();
}
hi
Can you try to add the same code(ObjectExtensionManager.Instance.MapEfCoreProperty<IdentityUser, string>) in identity and authserver projects?
The code can be duplicated.
You can remove the .Web package from auth server, and npm packages from packages.jon
But the UI won't work after that.
You can only use the oauth2 flow without UI.
hi
The project still has some problems.
Can you add your test code in a new template project? That will be the easiest.
Thanks
[11:19:09 ERR] An exception was thrown while activating SSDM.KMSv4.Permissions.KMSv4PermissionDefinitionProvider.
Autofac.Core.DependencyResolutionException: An exception was thrown while activating SSDM.KMSv4.Permissions.KMSv4PermissionDefinitionProvider.
---> Autofac.Core.DependencyResolutionException: None of the constructors found on type 'SSDM.KMSv4.Permissions.KMSv4PermissionDefinitionProvider' can be invoked with the available services and parameters:
Cannot resolve parameter 'SSDM.KMSv4.FilterValues.IFilterValueAppService filterValueAppService' of constructor 'Void .ctor(SSDM.KMSv4.FilterValues.IFilterValueAppService)'.
See https://autofac.rtfd.io/help/no-constructors-bindable for more info.
at Autofac.Core.Activators.Reflection.ReflectionActivator.<>c__DisplayClass14_0.<UseSingleConstructorActivation>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.<BuildPipeline>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.<BuildPipeline>b__1(ResolveRequestContext context)
at Autofac.Builder.RegistrationBuilder`3.<>c__DisplayClass41_0.<PropertiesAutowired>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.<BuildPipeline>b__1(ResolveRequestContext context)
at Autofac.Extensions.DependencyInjection.KeyedServiceMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>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.<BuildPipeline>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.<BuildPipeline>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.<BuildPipeline>b__1(ResolveRequestContext context)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>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.<BuildPipeline>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.Lifetime.LifetimeScope.Autofac.IComponentContext.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.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at Volo.Abp.Authorization.Permissions.StaticPermissionDefinitionStore.<>c__DisplayClass13_0.<CreatePermissionGroupDefinitions>b__0(Type p)
at System.Linq.Enumerable.IListSelectIterator`2.Fill(IList`1 source, Span`1 results, Func`2 func)
at System.Linq.Enumerable.IListSelectIterator`2.ToList()
at Volo.Abp.Authorization.Permissions.StaticPermissionDefinitionStore.CreatePermissionGroupDefinitions()
at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode)
at System.Lazy`1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)
at System.Lazy`1.CreateValue()
at Volo.Abp.Authorization.Permissions.StaticPermissionDefinitionStore.get_PermissionGroupDefinitions()
at Volo.Abp.Authorization.Permissions.StaticPermissionDefinitionStore.GetGroupsAsync()
at Volo.Abp.PermissionManagement.StaticPermissionSaver.SaveAsync() in C:\Users\malim\Downloads\NewTestProject\aspnet-core\modules\Volo.Abp.PermissionManagement\src\Volo.Abp.PermissionManagement.Domain\Volo\Abp\PermissionManagement\StaticPermissionSaver.cs:line 84
at Volo.Abp.PermissionManagement.StaticPermissionSaver.SaveAsync() in C:\Users\malim\Downloads\NewTestProject\aspnet-core\modules\Volo.Abp.PermissionManagement\src\Volo.Abp.PermissionManagement.Domain\Volo\Abp\PermissionManagement\StaticPermissionSaver.cs:line 156
at Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule.<>c__DisplayClass8_0.<<SaveStaticPermissionsToDatabaseAsync>b__1>d.MoveNext() in C:\Users\malim\Downloads\NewTestProject\aspnet-core\modules\Volo.Abp.PermissionManagement\src\Volo.Abp.PermissionManagement.Domain\Volo\Abp\PermissionManagement\AbpPermissionManagementDomainModule.cs:line 134
--- End of stack trace from previous location ---
at Polly.AsyncPolicy.<>c__DisplayClass44_0.<<ImplementationAsync>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Polly.Retry.AsyncRetryEngine.ImplementationAsync[TResult](Func`3 action, Context context, ExceptionPredicates shouldRetryExceptionPredicates, ResultPredicates`1 shouldRetryResultPredicates, Func`5 onRetryAsync, CancellationToken cancellationToken, Int32 permittedRetryCount, IEnumerable`1 sleepDurationsEnumerable, Func`4 sleepDurationProvider, Boolean continueOnCapturedContext)
[11:19:09 ERR] ---------- Exception Data ----------
ActivatorChain = SSDM.KMSv4.Permissions.KMSv4PermissionDefinitionProvider
[11:19:09 INF] Started database migrations...
[11:19:09 INF] Migrating schema for host database...
[11:19:09 ERR] An error occurred using the connection to database 'KMSv4_Testing2' on server 'tcp://localhost:5432'.
[11:19:12 ERR] Failed executing DbCommand (16ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE TABLE "AppDeploymentAssignments" (
"KioskId" bigint NOT NULL,
"DeploymentId" bigint NOT NULL,
"Status" text NOT NULL,
CONSTRAINT "PK_AppDeploymentAssignment" PRIMARY KEY ("KioskId", "DeploymentId"),
CONSTRAINT "FK_AppDeploymentAssignment_AppKiosks_KioskId" FOREIGN KEY ("KioskId") REFERENCES "AppKiosks" ("Id") ON DELETE CASCADE,
CONSTRAINT "FK_AppDeploymentAssignment_AppDeployments_DeploymentId" FOREIGN KEY ("DeploymentId") REFERENCES "AppDeployments" ("Id") ON DELETE CASCADE
);
Unhandled exception. Npgsql.PostgresException (0x80004005): 42P07: relation "PK_AppDeploymentAssignment" already exists
at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage)
at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token)
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken)
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteNonQueryAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteNonQueryAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteNonQueryAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationCommandExecutor.ExecuteAsync(IReadOnlyList`1 migrationCommands, IRelationalConnection connection, MigrationExecutionState executionState, Boolean beginTransaction, Boolean commitTransaction, Nullable`1 isolationLevel, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationCommandExecutor.ExecuteAsync(IReadOnlyList`1 migrationCommands, IRelationalConnection connection, MigrationExecutionState executionState, Boolean beginTransaction, Boolean commitTransaction, Nullable`1 isolationLevel, CancellationToken cancellationToken)
at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationCommandExecutor.ExecuteNonQueryAsync(IReadOnlyList`1 migrationCommands, IRelationalConnection connection, MigrationExecutionState executionState, Boolean commitTransaction, Nullable`1 isolationLevel, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.MigrateImplementationAsync(DbContext context, String targetMigration, MigrationExecutionState state, Boolean useTransaction, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.MigrateImplementationAsync(DbContext context, String targetMigration, MigrationExecutionState state, Boolean useTransaction, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.<>c.<<MigrateAsync>b__22_1>d.MoveNext()
--- End of stack trace from previous location ---
at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.MigrateAsync(String targetMigration, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.MigrateAsync(String targetMigration, CancellationToken cancellationToken)
at Npgsql.EntityFrameworkCore.PostgreSQL.Migrations.Internal.NpgsqlMigrator.MigrateAsync(String targetMigration, CancellationToken cancellationToken)
at SSDM.KMSv4.EntityFrameworkCore.EntityFrameworkCoreKMSv4DbSchemaMigrator.MigrateAsync() in C:\Users\malim\Downloads\NewTestProject\aspnet-core\src\SSDM.KMSv4.EntityFrameworkCore\EntityFrameworkCore\EntityFrameworkCoreKMSv4DbSchemaMigrator.cs:line 28
at SSDM.KMSv4.Data.KMSv4DbMigrationService.MigrateDatabaseSchemaAsync(Tenant tenant) in C:\Users\malim\Downloads\NewTestProject\aspnet-core\src\SSDM.KMSv4.Domain\Data\KMSv4DbMigrationService.cs:line 95
at SSDM.KMSv4.Data.KMSv4DbMigrationService.MigrateAsync() in C:\Users\malim\Downloads\NewTestProject\aspnet-core\src\SSDM.KMSv4.Domain\Data\KMSv4DbMigrationService.cs:line 52
at SSDM.KMSv4.DbMigrator.DbMigratorHostedService.StartAsync(CancellationToken cancellationToken) in C:\Users\malim\Downloads\NewTestProject\aspnet-core\src\SSDM.KMSv4.DbMigrator\DbMigratorHostedService.cs:line 36
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 SSDM.KMSv4.DbMigrator.Program.Main(String[] args) in C:\Users\malim\Downloads\NewTestProject\aspnet-core\src\SSDM.KMSv4.DbMigrator\Program.cs:line 29
at SSDM.KMSv4.DbMigrator.Program.<Main>(String[] args)
Exception data:
Severity: ERROR
SqlState: 42P07
MessageText: relation "PK_AppDeploymentAssignment" already exists
File: index.c
Line: 885
Routine: index_create
hi
Thanks. Please share the test project with liming.ma@volosoft.com
👍
hi
You can add a new component to switch the current tenant.
If the new tenant name exists, Replace the current URL.
https://tenant1.localhost:4200 try to link a new user that belongs to tenant2.tenant2tenant2 exists.https://tenant1.localhost:4200 with https://tenant2.localhost:4200hi
assuming I create the
Llm.Urlsetting, how would my frontend be able to know that there is such a settingLlm.Urland retrieve its value?
You should hardcode the setting name in angular to get values.
https://abp.io/docs/latest/framework/ui/angular/settings#how-to-get-a-specific-setting
This requires the IsVisibleToClients(A boolean value indicates that whether this setting value is available in the client side or not. Default value is false to prevent accidently publishing an internal critical setting value.) of your setting definition is true:
If your setting is not visible to the client. You have to add new API endpoints to get/set, just like
hi
The AuthServer built-in the account pro module for login(Authentication) and oauth2, etc.
That means it has to have UI pages.
The Auth Server project will not have a No UI option.