How do we automate the process of adding migrations and updating tenant databases automatically for a multi-tenant application ? Our product is single web app and database per tenant. Right now we are manually updating each tenant database individually.
Please inform how we can maintain and automate the code first migrations and update database for all tenants at the same time whenever a new migration is added.
Thanks
Yes . All relevant code files are attached. email.zip
In our Multi-tenant application using angularJS and MVC5 (Database per Tenant) our email send feature goes through following steps :
Login to tenant : Switch to HostDB to get Tenant ID Authenticate Send Email from UI Creates Job in Hangfire.Job in HostDB Queue Job Switch to Tenant DB get email configuration and summary Switch to Host DB Execute Job to send Email
However , we are getting the Abp.Domain.Entities.EntityNotFoundException after few emails are sent from a perticular tenant. Our initial guess is that because of the number of swithches between HostDB and TenantDB, we are getting this error. We have now switched to Hangfire Pro for background job processing.
========================================================================================== There is no such an entity. Entity type: C2C.Email.EmailConfiguration, id: 19
Abp.Domain.Entities.EntityNotFoundException: There is no such an entity. Entity type: C2C.Email.EmailConfiguration, id: 19
at Abp.Domain.Repositories.AbpRepositoryBase2.Get(TPrimaryKey id) at Castle.Proxies.EfRepositoryBase
3Proxy_24.Get_callback(Int64 id)
at Castle.Proxies.Invocations.AbpRepositoryBase2_Get_28.InvokeMethodOnTarget() at Castle.DynamicProxy.AbstractInvocation.Proceed() at Abp.Domain.Uow.UnitOfWorkInterceptor.PerformSyncUow(IInvocation invocation, UnitOfWorkOptions options) at Abp.Domain.Uow.UnitOfWorkInterceptor.PerformUow(IInvocation invocation, UnitOfWorkOptions options) at Abp.Domain.Uow.UnitOfWorkInterceptor.Intercept(IInvocation invocation) at Castle.DynamicProxy.AbstractInvocation.Proceed() at Castle.Proxies.EfRepositoryBase
3Proxy_24.Get(Int64 id)
at C2C.Email.EmailAppService.GetEmailConfiguration(getSessionTenantId sessionObj)
at Castle.Proxies.EmailAppServiceProxy.GetEmailConfiguration_callback(getSessionTenantId sessionObj)
at Castle.Proxies.Invocations.IEmailAppService_GetEmailConfiguration.InvokeMethodOnTarget()
at Castle.DynamicProxy.AbstractInvocation.Proceed()
at Abp.Domain.Uow.UnitOfWorkInterceptor.PerformSyncUow(IInvocation invocation, UnitOfWorkOptions options)
at Abp.Domain.Uow.UnitOfWorkInterceptor.PerformUow(IInvocation invocation, UnitOfWorkOptions options)
at Abp.Domain.Uow.UnitOfWorkInterceptor.Intercept(IInvocation invocation)
at Castle.DynamicProxy.AbstractInvocation.Proceed()
at Abp.Auditing.AuditingInterceptor.PerformSyncAuditing(IInvocation invocation, AuditInfo auditInfo)
at Abp.Auditing.AuditingInterceptor.Intercept(IInvocation invocation)
at Castle.DynamicProxy.AbstractInvocation.Proceed()
at Abp.Runtime.Validation.Interception.ValidationInterceptor.Intercept(IInvocation invocation)
at Castle.DynamicProxy.AbstractInvocation.Proceed()
at Castle.Proxies.EmailAppServiceProxy.GetEmailConfiguration(getSessionTenantId sessionObj)
at C2C.Email.SendEmailJob.getEmailConfigurationSummary(getSessionTenantId sessionObj)
at C2C.Email.SendEmailJob.Execute(getSessionTenantId sessionObj)
==========================================================================================
Is there a way to resolve this ? Looking forward to your continuous support.
We would like to know how hangfire is implemented in a multi-tenant application ? Scenario 1:
LOOKING FORWARD TO AN URGENT RESPONSE. Thanks.
We have devloped a multi-tenant applecation using aspnetzero angular and mvc5 abp framework. Although our emails are working fine from the default tenant , we are unable to send email froma tenant. We are using hangfire for background services and email scheduling. Each tenant has a separate database. It seems that the hangfire tables are created in each tenant db , however its not able to trigger call to sendemail method when an email is sent from a tenent. Could your support team guide us to resolve this issue? Email is a critical part of the application.
Perhaps you can share the issue over telephone if the contact number is available to us.
Thanks.
We are building an Angular 2 client front-end application that calls external API's . However noticed that the account controller in client project makes all server call and points to it.
Whereas we want to decouple this and actually call external login API from the client.
Please suggest the best way to modify the code in client to achieve this. Our API calls should direct to external server and not the existing server in the project.
We have client demos lined up , so this functionality is pretty critical for us.
Looking forward to your guidance.
Thanks.
We have a multi-tenant application. Each tenant has a separate database though. Having trouble in sending mail while logging in with different tenant other than Default tenant. While scheduling mail/Background process it refers to host db. And getting error for sending mails. Shows that it takes Host connectionString for hangfire process. For creating mail and other records it takes Tenant Connectionstring. Having separate Hangfire tables for each client
how to distinguish jobs for different tenants so that we can send emails tenant-specific.
Thanks!
We are implementing multi-tenant application .For this we need to assign subdomain for each tenant. How can we achieve this by using TenantSettingAppService.cs ? Also ,can you tell us how can we define tenant-specific settings , and how can we change Setting scope to tenant ?
PROBLEM SOLVED. Issue was that "Web server was on HTTP and SQL was on HTTPS ". So the calls were blocked. I think that was what meant by"No such host was found". So added code for redirecting to HTTPS in Global.asax
Anyways . Thanks for your support.
AZURE :
All other pages and functionality is working fine on Azure application. Only problem is with tenant creation. Tenant DB is created ok , but tables in the DB and stored procedures are not created.
Even local application creates tenant and DB and its tables fine. However on Azure , its simply gives "An internal error occurred". Log files give away the error pasted above.
Requesting your continued help. Thanks .