Activities of "bhyatz"

Hi

My devart oracle connection is not working after updating to 4.2.1. We were actually migrating from version 3.0.4 so the error could have been introduced earlier. We are getting "The specified transaction is not associated with the current connection." error in the background.

I am able to reproduce the problem using the steps below with a new solution.

Check the docs before asking a question: https://docs.abp.io/en/commercial/latest/ Check the samples, to see the basic tasks: https://docs.abp.io/en/commercial/latest/samples/index The exact solution to your question may have been answered before, please use the search on the homepage.

  • ABP Framework version: v4.2.1
  • UI type: Angular
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes / no
  • Exception message and stack trace:
  • Steps to reproduce the issue:
  1. Create a new solution: abp new NexBase --ui angular
  2. Add Package refrence <PackageReference Include="Volo.Abp.EntityFrameworkCore.Oracle.Devart" Version="4.2.1" /> to NexBase.EntityFrameworkCore.csproj
  3. In NexBaseEntityFrameworkCoreModule change options.UseSqlServer(); to options.UseOracle(); and add typeof(AbpEntityFrameworkCoreOracleDevartModule) to the depends
  4. Modify NexBaseMigrationsDbContextFactory from new DbContextOptionsBuilder<NexBaseMigrationsDbContext>() .UseSqlServer(configuration.GetConnectionString("Default"));

new DbContextOptionsBuilder<NexBaseMigrationsDbContext>() .UseOracle(configuration.GetConnectionString("Default"));

  1. Add Migrations src\NexBase.EntityFrameworkCore.DbMigrations>dotnet ef -s ..\NexBase.DbMigrator migrations add Initial Build started... Build succeeded. Done. To undo this action, use 'ef migrations remove'

  2. Run migrations src\NexBase.EntityFrameworkCore.DbMigrations>dotnet ef -s ..\NexBase.DbMigrator database update Build started... Build succeeded. Applying migration '20210224162217_Initial'.

  3. Seed Data. Run dbMigrator project

[18:38:19 INF] Started database migrations... [18:38:19 INF] Migrating schema for host database... [18:38:21 INF] Executing host database seed... Unhandled exception. System.InvalidOperationException: The specified transaction is not associated with the current connection. Only transactions associated with the current connection may be used. at Microsoft.EntityFrameworkCore.Storage.RelationalTransaction..ctor(IRelationalConnection connection, DbTransaction transaction, Guid transactionId, IDiagnosticsLogger1 logger, Boolean transactionOwned) at Microsoft.EntityFrameworkCore.Storage.RelationalTransactionFactory.Create(IRelationalConnection connection, DbTransaction transaction, Guid transactionId, IDiagnosticsLogger1 logger, Boolean transactionOwned) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.CreateRelationalTransaction(DbTransaction transaction, Guid transactionId, Boolean transactionOwned) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.UseTransactionAsync(DbTransaction transaction, Guid transactionId, CancellationToken cancellationToken) at Volo.Abp.Uow.EntityFrameworkCore.UnitOfWorkDbContextProvider1.CreateDbContextWithTransactionAsync(IUnitOfWork unitOfWork) at Volo.Abp.Uow.EntityFrameworkCore.UnitOfWorkDbContextProvider1.CreateDbContextAsync(IUnitOfWork unitOfWork) at Volo.Abp.Uow.EntityFrameworkCore.UnitOfWorkDbContextProvider1.CreateDbContextAsync(IUnitOfWork unitOfWork, String connectionStringName, String connectionString) at Volo.Abp.Uow.EntityFrameworkCore.UnitOfWorkDbContextProvider1.GetDbContextAsync() at Volo.Abp.Domain.Repositories.EntityFrameworkCore.EfCoreRepository2.GetDbSetAsync() at Volo.Abp.Identity.EntityFrameworkCore.EfCoreIdentityUserRepository.FindByNormalizedUserNameAsync(String normalizedUserName, Boolean includeDetails, CancellationToken cancellationToken) at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue1.ProceedAsync() at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) at Volo.Abp.Identity.IdentityDataSeeder.SeedAsync(String adminEmail, String adminPassword, Nullable1 tenantId) at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue1.ProceedAsync() at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) at Volo.Abp.Data.DataSeeder.SeedAsync(DataSeedContext context) at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync() at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) at NexBase.Data.NexBaseDbMigrationService.SeedDataAsync(Tenant tenant) in C:\tmp\abp\Nexbase\aspnet-core\src\NexBase.Domain\Data\NexBaseDbMigrationService.cs:line 107 at NexBase.Data.NexBaseDbMigrationService.MigrateAsync() in C:\tmp\abp\Nexbase\aspnet-core\src\NexBase.Domain\Data\NexBaseDbMigrationService.cs:line 57 at NexBase.DbMigrator.DbMigratorHostedService.StartAsync(CancellationToken cancellationToken) in C:\tmp\abp\Nexbase\aspnet-core\src\NexBase.DbMigrator\DbMigratorHostedService.cs:line 30 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 NexBase.DbMigrator.Program.Main(String[] args) in C:\tmp\abp\Nexbase\aspnet-core\src\NexBase.DbMigrator\Program.cs:line 29 at NexBase.DbMigrator.Program.<Main>(String[] args)

  1. Surround all seed data by using (_unitOfWorkManager.Begin(requiresNew: true)) { await SeedDataAsync(); }
  2. Rerun Seed
  3. Start webapi. host project
  4. Try to run /api​/account​/login from swagger [18:47:28 INF] No CORS policy found for the specified request. [18:47:28 INF] Executing endpoint 'Volo.Abp.Account.Public.Web.Areas.Account.Controllers.AccountController.Login (Volo.Abp.Account.Pro.Public.Web)' [18:47:28 INF] Route matched with {area = "account", controller = "Login", action = "Login", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Volo.Abp.Account.Public.Web.Areas.Account.Controllers.Models.AbpLoginResult] Login( Volo.Abp.Account.Public.Web.Areas.Account.Controllers.Models.UserLoginInfo) on controller Volo.Abp.Account.Public.Web.Areas.Account.Controllers.AccountController (Volo.Abp.Account.Pro.Public.Web). [18:47:28 DBG] Login Url: /Account/Login [18:47:28 DBG] Login Return Url Parameter: ReturnUrl [18:47:28 DBG] Logout Url: /Account/Logout [18:47:28 DBG] ConsentUrl Url: /Consent [18:47:28 DBG] Consent Return Url Parameter: returnUrl [18:47:28 DBG] Error Url: /Account/Error [18:47:28 DBG] Error Id Parameter: errorId [18:47:30 ERR] ---------- RemoteServiceErrorInfo ---------- { "code": null, "message": "An internal error occurred during your request!", "details": null, "data": {}, "validationErrors": null }

[18:47:30 ERR] The specified transaction is not associated with the current connection. Only transactions associated with the current connection may be used. System.InvalidOperationException: The specified transaction is not associated with the current connection. Only transactions associated with the current connection may be used. at Microsoft.EntityFrameworkCore.Storage.RelationalTransaction..ctor(IRelationalConnection connection, DbTransaction transaction, Guid transactionId, IDiagnosticsLogger1 logger, Boolean transactionOwned) at Microsoft.EntityFrameworkCore.Storage.RelationalTransactionFactory.Create(IRelationalConnection connection, DbTransaction transaction, Guid transactionId, IDiagnosticsLogger1 logger, Boolean transactionOwned) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.CreateRelationalTransaction(DbTransaction transaction, Guid transactionId, Boolean transactionOwned) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.UseTransactionAsync(DbTransaction transaction, Guid transactionId, CancellationToken cancellationToken) at Volo.Abp.Uow.EntityFrameworkCore.UnitOfWorkDbContextProvider1.CreateDbContextWithTransactionAsync(IUnitOfWork unitOfWork) at Volo.Abp.Uow.EntityFrameworkCore.UnitOfWorkDbContextProvider1.CreateDbContextAsync(IUnitOfWork unitOfWork) at Volo.Abp.Uow.EntityFrameworkCore.UnitOfWorkDbContextProvider1.CreateDbContextAsync(IUnitOfWork unitOfWork, String connectionStringName, String connectionString) at Volo.Abp.Uow.EntityFrameworkCore.UnitOfWorkDbContextProvider1.GetDbContextAsync() at Volo.Abp.Domain.Repositories.EntityFrameworkCore.EfCoreRepository2.GetDbSetAsync() at Volo.Abp.FeatureManagement.EntityFrameworkCore.EfCoreFeatureValueRepository.GetListAsync(String providerName, String providerKey) at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue1.ProceedAsync() at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) at Volo.Abp.FeatureManagement.FeatureManagementStore.SetCacheItemsAsync(String providerName, String providerKey, String currentName, FeatureValueCacheItem currentCacheItem) at Volo.Abp.FeatureManagement.FeatureManagementStore.GetCacheItemAsync(String name, String providerName, String providerKey) at Volo.Abp.FeatureManagement.FeatureManagementStore.GetOrNullAsync(String name, String providerName, String providerKey) at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue1.ProceedAsync() at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) at Volo.Abp.Features.TenantFeatureValueProvider.GetOrNullAsync(FeatureDefinition feature) at Volo.Abp.Features.FeatureChecker.GetOrNullValueFromProvidersAsync(IEnumerable1 providers, FeatureDefinition feature) at Volo.Abp.Features.FeatureChecker.GetOrNullAsync(String name) at Volo.Abp.Features.FeatureCheckerBase.IsEnabledAsync(String name) at Volo.Abp.Account.Public.Web.Ldap.LdapExternalLoginProvider.TryAuthenticateAsync(String userName, String plainPassword) at Volo.Abp.Identity.AspNetCore.AbpSignInManager.PasswordSignInAsync(String userName, String password, Boolean isPersistent, Boolean lockoutOnFailure) at Volo.Abp.Account.Public.Web.Areas.Account.Controllers.AccountController.Login(UserLoginInfo login) at lambda_method1837(Closure , Object ) at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.

Thank you for the quick response

Check the docs before asking a question: https://docs.abp.io/en/commercial/latest/ Check the samples, to see the basic tasks: https://docs.abp.io/en/commercial/latest/samples/index The exact solution to your question may have been answered before, please use the search on the homepage.

We a developing out solution as seperate modules. I would like to know what is the best method to use to communicate between modules.

Reading up it seems that the best method is to communicate using application services, however this may cause security related issues between modules.

e..g Module B runs a backround service that has to get a list of new events from module A.

Module B does not have a user associated to it. Module A's method to get the list of tasks needs to check if the user making a request to the webapi service has access to the tasks.

IS there a way to check the request is coming from another microservice and not from a user to allow the user to access the items? Will the ABP permission on the application service block the call if the method is called from another microservice?

What is the best way to implement this type of communication between modules without compromising on security

  • ABP Framework version: vX.X.X
  • UI type: Angular / MVC
  • Tiered (MVC) or Identity Server Seperated (Angular): yes / no
  • Exception message and stack trace:
  • Steps to reproduce the issue:

Hi

Thanks. I got it working.

Check the docs before asking a question: https://docs.abp.io/en/commercial/latest/ Check the samples, to see the basic tasks: https://docs.abp.io/en/commercial/latest/samples/index The exact solution to your question may have been answered before, please use the search on the homepage.

  • ABP Framework version: v3.0.4
  • UI type: Angular
  • Tiered (MVC) or Identity Server Seperated (Angular): yes / no
  • Exception message and stack trace: None
  • Steps to reproduce the issue:

I can't see the custom claim in the current user or pricipal

I have added a custom claim type "testClaimType" using the frontend

I have added the a claim value for this claim to the Admin user

During Login The AbpUserClaimsPrincipalFactory loads the custom claims correctly. As you can see there is claim of testClaimType with value 12.

However the claim type does not show in the current user claims or the ClaimsPrincipal .

How do you get the claims for the custom claim types for the current user?

Is it possible to add the custom claim types to the current users claims?

Answer

I am using identity server and the ui is angular.

I have currently implemented this by extending the Volo.Abp.Identity.IdentityUser and updating GetRolesAsync,IsInRoleAsync and GetActiveRoles to filter only the active roles. I am not sure if this is the best way or not.

Question

I have extended abpuserroles to include Active and Inactive dates so a user will only have a role between these dates.

However I found several places where the user roles are used in the code. However I can't find the place where the roles are assigned to the user when he logs in.

I need to change the login so that only roles that are active are assigned to a user when he logs in. Where do I modify this logic?

Answer

Hi

I am getting the following error, I have tried the above and it is still not working. I only develop on one computer.

Answer

According to https://github.com/abpframework/abp/issues/1082 this has been added to backlog with priority high, do you have an idea when this would be implemented?

Question

What is the best way to implement impersonation in the current framework?

Showing 11 to 20 of 28 entries
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.0.0-preview. Updated on June 23, 2025, 11:58