首页 > 解决方案 > Abp.AbpException:没有给定 id 的租户:2

问题描述

启动模板项目时出错 Abp.AbpException::

没有给定 ID 的租户:2

我检查了数据库,有默认租户并创建了用户。但未能加载 Swagger 并出现错误:

获取错误内部服务器错误http://localhost:21021/swagger/v1/swagger.json

检查了 txt 日志,下面是错误堆栈,我很困惑租户 id 2 在哪里传递。

错误 2019-01-09 14:54:25,221 [7] Microsoft.AspNetCore.Server.Kestrel - 连接 ID“0HLJLVT04BST8”,请求 ID“0HLJLVT04BST8:00000003”:应用程序引发了未处理的异常。Abp.AbpException:没有给定 id 的租户:2 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.TenantCache2_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](Nullable1 multiTenancySide,字符串名称)在 D:\Github\aspnetboilerplate\src\Abp.EntityFrameworkCore\EntityFrameworkCore\Uow\EfCoreUnitOfWork.cs:Abp.EntityFrameworkCore.Repositories.EfCoreRepositoryBase 的第 107 行3.get_Table() in D:\Github\aspnetboilerplate\src\Abp.EntityFrameworkCore\EntityFrameworkCore\Repositories\EfCoreRepositoryBaseOfTEntityAndTPrimaryKey.cs:line 39 at Abp.EntityFrameworkCore.Repositories.EfCoreRepositoryBase3.GetAllIncluding(表达式1[] propertySelectors) in D:\Github\aspnetboilerplate\src\Abp.EntityFrameworkCore\EntityFrameworkCore\Repositories\EfCoreRepositoryBaseOfTEntityAndTPrimaryKey.cs:line 88 at Abp.EntityFrameworkCore.Repositories.EfCoreRepositoryBase3.GetAllListAsync(表达式1 predicate) in D:\Github\aspnetboilerplate\src\Abp.EntityFrameworkCore\EntityFrameworkCore\Repositories\EfCoreRepositoryBaseOfTEntityAndTPrimaryKey.cs:line 108 at Abp.Threading.InternalAsyncHelper.AwaitTaskWithPostActionAndFinallyAndGetResult[T](Task1 实际返回值) , 功能1 postAction, Action1 finalAction)1 tenantId, Nullable在 D:\Github\aspnetboilerplate\src\Abp.Zero.Common\Configuration\SettingStore.cs: Abp.Threading.InternalAsyncHelper.AwaitTaskWithPostActionAndFinallyAndGetResult[T] 中的 Abp.Configuration.SettingStore.GetAllListAsync(Nullable 1 userId) ](Task 1 actualReturnValue, Func1 postAction, Action 1 finalAction) at Abp.Configuration.SettingManager.<>c__DisplayClass40_0.<<GetUserSettingsFromCache>b__0>d.MoveNext() in D:\Github\aspnetboilerplate\src\Abp\Configuration\SettingManager.cs:line 436 --- End of stack trace from previous location where exception was thrown --- at Abp.Runtime.Caching.CacheExtensions.<>c__DisplayClass9_02.<b__0>d.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪---在 Abp.Runtime.Caching.CacheBase.GetAsync(String key, Func2 factory) in D:\Github\aspnetboilerplate\src\Abp\Runtime\Caching\CacheBase.cs:line 182 at Abp.Runtime.Caching.CacheExtensions.GetAsync[TKey,TValue](ICache cache, TKey key, Func2 工厂)在 D:\Github\aspnetboilerplate\src\Abp\Runtime\Caching\CacheExtensions.cs:第 60 行 Abp.Configuration.SettingManager.GetUserSettingsFromCache(UserIdentifier user) 在 D:\Github\aspnetboilerplate\src\Abp\Configuration \SettingManager.cs:D:\Github\aspnetboilerplate\src\Abp\Configuration\SettingManager.cs 中 Abp.Configuration.SettingManager.GetReadOnlyUserSettings(UserIdentifier 用户)的第 430 行:Abp.Configuration.SettingManager.GetSettingValueForUserOrNullAsync 中的第 403 行(UserIdentifier 用户, 字符串名称)在 D:\Github\aspnetboilerplate\src\Abp\Configuration\SettingManager.cs:Abp.Configuration.SettingManager.GetSettingValueInternalAsync 的第 373 行(字符串名称,Nullable1 tenantId, Nullable1 userId, Boolean fallbackToDefault) 在 D:\Github\aspnetboilerplate\src\Abp\Configuration\SettingManager.cs:line 235 at Abp.AspNetCore.Localization.AbpUserRequestCultureProvider.DetermineProviderCultureResult(HttpContext httpContext) in D:\Github\aspnetboilerplate\src\ Abp.AspNetCore\AspNetCore\Localization\AbpUserRequestCultureProvider.cs:第 29 行 Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.Invoke(HttpContext context) 在 Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) 在 Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware .Invoke(HttpContext context) at Microsoft.AspNetCore.Cors.Infrastructure.CorsMiddleware.Invoke(HttpContext context) at Abp.AspNetCore.Security.AbpSecurityHeadersMiddleware.Invoke(HttpContext httpContext) in D:\Github\aspnetboilerplate\src\Abp.AspNetCore\AspNetCore\Security\AbpSecurityHeadersMiddleware.cs:Microsoft.AspNetCore.Server.IISIntegration.IISMiddleware.Invoke(HttpContext httpContext) 在 Microsoft.AspNetCore.Server.Kestrel.Core.Internal 的第 26 行。 Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application) INFO 2019-01-09 14:54:25,227 [7] soft.AspNetCore.Hosting.Internal.WebHost - 请求在 182.7895 毫秒内完成 500WebHost - 请求在 182.7895 毫秒内完成 500WebHost - 请求在 182.7895 毫秒内完成 500

标签: mysqlaspnetboilerplate

解决方案


这是我昨天授权 swagger 的浏览器 Swagger 缓存问题。

最好清除浏览器缓存。这就是为什么有一个租户 id 2。


推荐阅读