I got the app up and running. Started up, it was working fine. I checked in the code, and when another developer started the app (database is created and tables exist) he gets the following error:
There is no tenant with given id: 1 Abp.MultiTenancy.TenantCache<TTenant, TUser>.Get(int tenantId) in TenantCache.cs, line 35
I don't remember doing anything specific when I first started the app. When I look in my database, I have a record in AbpTenant, when he looks in his, there is no record. Any ideas?
Thanks,
Matt
7 Answer(s)
-
0
Is the primary key id of the data in the Abp Tenants table a number 1?
If you are just starting the project, you can delete the database and re-migrate.
-
0
It is a fresh database, all they have done is run Update-Database, and then start the application.
-
0
Can you share the complete stack information?
You can try to modify the database name of the database connection string, re-migrate and start the application to see if it is still wrong.
-
0
An unhandled exception occurred while processing the request. AbpException: There is no tenant with given id: 1 Abp.MultiTenancy.TenantCache<TTenant, TUser>.Get(int tenantId) in TenantCache.cs, line 35 at Abp.MultiTenancy.TenantCache`2.Get(Int32 tenantId) in D:\\Github\\aspnetboilerplate\\src\\Abp.Zero.Common\\MultiTenancy\\TenantCache.cs:line 35 at Castle.Proxies.Invocations.TenantCache`2_Get.InvokeMethodOnTarget() at Castle.DynamicProxy.AbstractInvocation.Proceed() at Castle.DynamicProxy.AbstractInvocation.Proceed() at Castle.Proxies.TenantCache`2Proxy.Get(Int32 tenantId) at Abp.Zero.EntityFrameworkCore.DbPerTenantConnectionStringResolver.GetNameOrConnectionString(DbPerTenantConnectionStringResolveArgs args) in D:\\Github\\aspnetboilerplate\\src\\Abp.ZeroCore.EntityFrameworkCore\\Zero\\EntityFrameworkCore\\DbPerTenantConnectionStringResolver.cs:line 50 at Abp.Zero.EntityFrameworkCore.DbPerTenantConnectionStringResolver.GetNameOrConnectionString(ConnectionStringResolveArgs args) in D:\\Github\\aspnetboilerplate\\src\\Abp.ZeroCore.EntityFrameworkCore\\Zero\\EntityFrameworkCore\\DbPerTenantConnectionStringResolver.cs:line 45 at Abp.EntityFrameworkCore.Uow.EfCoreUnitOfWork.GetOrCreateDbContext[TDbContext](Nullable`1 multiTenancySide) in D:\\Github\\aspnetboilerplate\\src\\Abp.EntityFrameworkCore\\EntityFrameworkCore\\Uow\\EfCoreUnitOfWork.cs:line 107 at Abp.EntityFrameworkCore.Uow.UnitOfWorkDbContextProvider`1.GetDbContext() in D:\\Github\\aspnetboilerplate\\src\\Abp.EntityFrameworkCore\\EntityFrameworkCore\\Uow\\UnitOfWorkDbContextProvider.cs:line 28 at EBSG.CrmDemo.EntityFrameworkCore.DatabaseCheckHelper.Exist(String connectionString) in C:\\git_src\\CRM\\ANZ\\src\\EBSG.CrmDemo.EntityFrameworkCore\\EntityFrameworkCore\\DatabaseCheckHelper.cs:line 36
-
0
It seems that what caused the tenant 1 does not exist.
please send your project to <a href="mailto:[email protected]">[email protected]</a>. This will help to quickly locate the problem. :)
-
0
Thanks for your help on resolving this problem. I'm posting the solution for others who may also experience this issue.
**Hi,
Thank you for sharing your solution. It seems like there is a bug for single tenant mode.
Please change Exist method of DatabaseCheckHelper class (which is under src\xxx.EntityFrameworkCore\EntityFrameworkCore) like below;**
public bool Exist(string connectionString) { if (connectionString.IsNullOrEmpty()) { //connectionString is null for unit tests return true; } try { using (var uow =_unitOfWorkManager.Begin()) { using (_unitOfWorkManager.Current.SetTenantId(null)) { _dbContextProvider.GetDbContext().Database.OpenConnection(); uow.Complete(); } } } catch (Exception ex) { return false; } return true; }
-
0
thanks for your feedback ;)