Please answer the following questions before submitting an issue. YOU MAY DELETE THE PREREQUISITES SECTION.
-What is your product version? 10.3 -What is your product type (Angular or MVC)? Angular -What is product framework type (.net framework or .net core)? .netCore
Hi I have a ConnectionStringResolver like this:
` public class ProjectNameConnectionStringResolver : DefaultConnectionStringResolver { private readonly IConfigurationRoot _appConfiguration; private readonly IAmbientDataContext _ambientDataContext;
public ProjectNameConnectionStringResolver(IAbpStartupConfiguration configuration, IHostingEnvironment hostingEnvironment, IAmbientDataContext ambientDataContext)
: base(configuration)
{
_appConfiguration = AppConfigurations.Get(hostingEnvironment.ContentRootPath, hostingEnvironment.EnvironmentName);
_ambientDataContext = ambientDataContext;
}
public override string GetNameOrConnectionString(ConnectionStringResolveArgs args)
{
if ((string)_ambientDataContext.GetData(ProjectNameConsts.DatabaseSelection) == ProjectNameConsts.SelectedDatabase.ReadDatabase)
{
string xx = _appConfiguration.GetConnectionString(ProjectNameConsts.ReadReplicaConnectionStringName);
return xx;
}
return base.GetNameOrConnectionString(args);
}
}
And it has been register like this in EntityFrameworkCoreModule:
Configuration.ReplaceService(typeof(IConnectionStringResolver), () =>
{
IocManager.Register<IConnectionStringResolver, PuduxConnectionStringResolver>(DependencyLifeStyle.Transient);
});
Everything works fine. but when I try to run migrator I recive following error:
2021-06-28 18:15:20 | HOST database migration started...
2021-06-28 18:15:20 | An error occured during migration of host database:
2021-06-28 18:15:20 | Castle.MicroKernel.Handlers.HandlerException: Can't create component 'ProjectName.EntityFrameworkCore.ProjectNameConnectionStringResolver' as it has dependencies to be satisfied.
'ProjectName.EntityFrameworkCore.ProjectNameConnectionStringResolver' is waiting for the following dependencies:
- Service 'Microsoft.AspNetCore.Hosting.IHostingEnvironment' which was not registered.
at Castle.MicroKernel.Handlers.DefaultHandler.AssertNotWaitingForDependency()
at Castle.MicroKernel.Handlers.DefaultHandler.ResolveCore(CreationContext context, Boolean requiresDecommission, Boolean instanceRequired, Burden& burden)
at Castle.MicroKernel.Handlers.DefaultHandler.Resolve(CreationContext context, Boolean instanceRequired)
at Castle.MicroKernel.Resolvers.DefaultDependencyResolver.ResolveFromKernelByType(CreationContext context, ComponentModel model, DependencyModel dependency)
at Castle.MicroKernel.Resolvers.DefaultDependencyResolver.TryResolveCore(CreationContext context, ISubDependencyResolver contextHandlerResolver, ComponentModel model, DependencyModel dependency, Object& value)
at Castle.MicroKernel.Resolvers.DefaultDependencyResolver.Resolve(CreationContext context, ISubDependencyResolver contextHandlerResolver, ComponentModel model, DependencyModel dependency)
at Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.CreateConstructorArguments(ConstructorCandidate constructor, CreationContext context)
at Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.Instantiate(CreationContext context)
at Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.InternalCreate(CreationContext context)
at Castle.MicroKernel.ComponentActivator.AbstractComponentActivator.Create(CreationContext context, Burden burden)
at Castle.MicroKernel.Lifestyle.AbstractLifestyleManager.CreateInstance(CreationContext context, Boolean trackedExternally)
at Castle.MicroKernel.Lifestyle.AbstractLifestyleManager.Resolve(CreationContext context, IReleasePolicy releasePolicy)
at Castle.MicroKernel.Handlers.DefaultHandler.ResolveCore(CreationContext context, Boolean requiresDecommission, Boolean instanceRequired, Burden& burden)
at Castle.MicroKernel.Handlers.DefaultHandler.Resolve(CreationContext context, Boolean instanceRequired)
at Castle.MicroKernel.DefaultKernel.ResolveComponent(IHandler handler, Type service, Arguments additionalArguments, IReleasePolicy policy, Boolean ignoreParentContext)
at Castle.MicroKernel.DefaultKernel.Castle.MicroKernel.IKernelInternal.Resolve(Type service, Arguments arguments, IReleasePolicy policy, Boolean ignoreParentContext)
at Castle.MicroKernel.DefaultKernel.Resolve(Type service, Arguments arguments)
at Castle.Windsor.WindsorContainer.Resolve[T]()
at Abp.Domain.Uow.UnitOfWorkManager.Begin(UnitOfWorkOptions options)
at Abp.Domain.Uow.UnitOfWorkManager.Begin(TransactionScopeOption scope)
at Abp.Zero.EntityFrameworkCore.AbpZeroDbMigrator`1.CreateOrMigrate(AbpTenantBase tenant, Action`1 seedAction)
at Abp.Zero.EntityFrameworkCore.AbpZeroDbMigrator`1.CreateOrMigrateForHost(Action`1 seedAction)
at ProjectName.Migrator.MultiTenantMigrateExecuter.Run(Boolean skipConnVerification, Boolean isDockerEnabled) in D:\Workspace\Work\XX\ProjectNameProjects\ProjectName-10.3.0\src\ProjectName.Migrator\MultiTenantMigrateExecuter.cs:line 62
2021-06-28 18:15:20 | Canceled migrations.
As I understand the problem, main project has an registered IHostingEnvironment injection but this service is not injected to Migrator.
Can you guide me how to inject this to migrator.
Thank you
Hi there,
This is not a support ticket just requesting some feture on Power tool,
I am trying to use power tools for some create some multi language entitiy. It does not have this feature It will be good to have this feature.
But When I try to add manually I got some problem.
Check this entity for example:
ProfessionGroup entity does not have any other column so power tool does not let me create that.
So I have to add it with fake column then remove that fake column from codes.
Then when I need to add ProfessionGroup as foreign key to an other table it also does not let me to add because there is not any Display property.
Can you check these problems on your next release.
One more suggestion for power tool. Can we have checkbox on regenerate entity like "Save User Changes" when it is checked, On regenerating files do not delete user files just comment their inside and add new code.
Why I ask this:
Normally users generates entities then they do some changes on them (for example they changes some part on UI and etc..) then they need to add some extra columns on the entity. Now your regenrates code ovrrides users all changes and it is not good.
If you provide such a option that I wrote, user changes will not gone and user can access them trhough comments in that file.
Thank you.
Hi
We are using Amazon Relational Database Service (RDS). We have one primery database which is read/write databse. also we have one Read Replica database which is only read-only. Both database schema's are exactly same and the data is almost same but maybe with a few milsecond dely.
When we want to write any record to database we should connect to 1st database, but when we want to read we need to connect to read replica database. (also sometimes we may need to read from 1st database).
Can you guide me how to achive this via Asp.net Zero?
Thanks
What is your product version? 9.0.1 What is your product type (Angular or MVC)? Angular (single solution) What is product framework type (.net framework or .net core)? ASP.NET CORE
Hi,
What is best practice to add existing database to Asp.net zero and be able to use asp.net zero's features. In fact I don't have problem with importing DB to code first. I am asking because I want to be able use Zero's features after import. Feature's like Full Audit, SoftDelete, MultiTenancy and etc...
Thank you.
What is your product version? 9.0.1 What is your product type (Angular or MVC)? Angular (single solution) What is product framework type (.net framework or .net core)? ASP.NET CORE
Hi
Is there any step by step guide for publishing ASP.NET Core and Angular single solution to IIS? If not can guide me how to host API (.Net Core) and UI (Angular) on same site on iis?
What about "ServerRootAddress": "https://localhost:44301/", "ClientRootAddress": "http://localhost:4200/"
settings in appsetting.jso and etc...
Thanks.
What is your product version? 9.0.1 What is your product type (Angular or MVC)? Angular (single solution) What is product framework type (.net framework or .net core)? ASP.NET CORE
Hi what is best practise to make Migrator project work with environment jsons. I need a way to publish Migrator project to different environments each using it's own configuration.json
Thank you
Please answer the following questions before submitting an issue.
Hi,
I need to change tenant based on my requirements on only login page.
init(): void {
abp.multiTenancy.setTenantIdCookie(1);
....
}
Hi,
I need to get which properties of enitity is being update in domain updating event, I there anyway for this?
I also tired this way but no hope, userBeforeUpdate have updated values not the orginal values.
[UnitOfWork]
public void HandleEvent(EntityUpdatingEventData<AbpUserBase> eventData)
{
using (_unitOfWorkManager.Current.DisableFilter(AbpDataFilters.MayHaveTenant))
{
//Get all users
IQueryable<User> allUser = _userRepository.GetAll();
var userBeforeUpdate = allUser.FirstOrDefault(ua => ua.Id == eventData.Entity.Id && (ua.UserName == eventData.Entity.UserName || ua.EmailAddress == eventData.Entity.EmailAddress));
//user email is being activated
if (userBeforeUpdate.IsEmailConfirmed != eventData.Entity.IsEmailConfirmed && userBeforeUpdate.EmailConfirmationCode != eventData.Entity.EmailConfirmationCode)
{
}
}
}
Hi,
Is it possible remove username from all authentication and authorization process? In other word, we just want email as authentication or authorization property?
thanks.
Hi,
When creating user in tenant I need to create a user with same properties (username, email, password, ...) in default tenant if it is not already created and add it linked account of that user, Also When a user changes his password in any tenant, I need to change password of all users with same username in any tenant (in defualt tenant also).
what is the best practice to achieve this?
Why I need this, Assume this senario:
I need a way that Person A login into system (defualt tenant) then select tenant (from linked accounts) and continue working. In other mean I don't want to users select tenants before logging in to system.