Activities of "heshengli"

Could not find IdentityClientConfiguration for AbpMvcClient. Either define a configuration for AbpMvcClient or set a default configuration.

  • Exception message and full stack trace:
  • Steps to reproduce the issue: Dynamic Claims ,how to config RemoteServices ,AbpAccountPublic Or AbpIdentity

这个应用,有很多人使用,且页面长期打开使用不关闭

  • Exception message and full stack trace:
  • Steps to reproduce the issue: [2025-12-18 14:00:02.801 +08:00] [WRN] [Volo.Abp.Caching.DistributedCache] Timeout awaiting response (outbound=1KiB, inbound=0KiB, 5502ms elapsed, timeout is 5000ms), command=HMGET, next: HMGET c:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto,k:vSkysoft:ApplicationConfiguration_77ea1cc56a3e9b7aecee3a15e9cea1f5_zh-Hans, inst: 0, qu: 0, qs: 8, aw: False, bw: SpinningDown, rs: ReadAsync, ws: Idle, in: 87304, in-pipe: 0, out-pipe: 0, last-in: 0, cur-in: 0, sync-ops: 18, async-ops: 4395440, serverEndpoint: 10.166.0.97:6379, conn-sec: 770.75, aoc: 0, mc: 1/1/0, mgr: 10 of 10 available, clientName: 2623c49bb095(SE.Redis-v2.7.27.49176), IOCP: (Busy=0,Free=1000,Min=1,Max=1000), WORKER: (Busy=99,Free=32668,Min=16,Max=32767), POOL: (Threads=99,QueuedItems=30,CompletedItems=89914679,Timers=26), v: 2.7.27.49176 (Please take a look at this article for some common client-side issues that can cause timeouts: https://stackexchange.github.io/StackExchange.Redis/Timeouts) StackExchange.Redis.RedisTimeoutException: Timeout awaiting response (outbound=1KiB, inbound=0KiB, 5502ms elapsed, timeout is 5000ms), command=HMGET, next: HMGET c:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto,k:vSkysoft:ApplicationConfiguration_77ea1cc56a3e9b7aecee3a15e9cea1f5_zh-Hans, inst: 0, qu: 0, qs: 8, aw: False, bw: SpinningDown, rs: ReadAsync, ws: Idle, in: 87304, in-pipe: 0, out-pipe: 0, last-in: 0, cur-in: 0, sync-ops: 18, async-ops: 4395440, serverEndpoint: 10.166.0.97:6379, conn-sec: 770.75, aoc: 0, mc: 1/1/0, mgr: 10 of 10 available, clientName: 2623c49bb095(SE.Redis-v2.7.27.49176), IOCP: (Busy=0,Free=1000,Min=1,Max=1000), WORKER: (Busy=99,Free=32668,Min=16,Max=32767), POOL: (Threads=99,QueuedItems=30,CompletedItems=89914679,Timers=26), v: 2.7.27.49176 (Please take a look at this article for some common client-side issues that can cause timeouts: https://stackexchange.github.io/StackExchange.Redis/Timeouts) at Microsoft.Extensions.Caching.StackExchangeRedis.RedisCache.GetAndRefreshAsync(String key, Boolean getData, CancellationToken token) at Microsoft.Extensions.Caching.StackExchangeRedis.RedisCache.GetAsync(String key, CancellationToken token) at Volo.Abp.Caching.DistributedCache2.GetAsync(TCacheKey key, Nullable1 hideErrors, Boolean considerUow, CancellationToken token) [2025-12-18 14:00:02.801 +08:00] [WRN] [Volo.Abp.Caching.DistributedCache] ---------- Exception Data ---------- Redis-Message = HMGET c:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto,k:vSkysoft:ApplicationConfiguration_Anonymous_zh-Hans Redis-Message-Next = HMGET c:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto,k:vSkysoft:ApplicationConfiguration_77ea1cc56a3e9b7aecee3a15e9cea1f5_zh-Hans Redis-OpsSinceLastHeartbeat = 0 Redis-Queue-Awaiting-Write = 0 Redis-Queue-Awaiting-Response = 8 Redis-Active-Writer = False Redis-Backlog-Writer = SpinningDown Redis-Read-State = ReadAsync Redis-Write-State = Idle Redis-Inbound-Bytes = 87304 Redis-Inbound-Pipe-Bytes = 0 Redis-Outbound-Pipe-Bytes = 0 Redis-Last-Result-Bytes = 0 Redis-Inbound-Buffer-Bytes = 0 Redis-Sync-Ops = 18 Redis-Async-Ops = 4395440 Redis-Server-Endpoint = 10.166.0.97:6379 Redis-Server-Connected-Seconds = 770.75 Redis-Abort-On-Connect = 0 Redis-Multiplexer-Connects = 1/1/0 Redis-Manager = 10 of 10 available Redis-Client-Name = 2623c49bb095(SE.Redis-v2.7.27.49176) Redis-ThreadPool-IO-Completion = (Busy=0,Free=1000,Min=1,Max=1000) Redis-ThreadPool-Workers = (Busy=99,Free=32668,Min=16,Max=32767) Redis-ThreadPool-Items = (Threads=99,QueuedItems=30,CompletedItems=89914679,Timers=26) Redis-Busy-Workers = 99 Redis-Version = 2.7.27.49176 redis-command = HMGET c:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto,k:vSkysoft:ApplicationConfiguration_Anonymous_zh-Hans request-sent-status = Sent redis-server = 10.166.0.97:6379

引用Contracts模块,包含大量权限,导致自身程序启动时也加载引用Contracts模块的权限,对自身程序没有作用,还影响性能

    Configure<PermissionManagementOptions>(options =>
    {

options.ISaveStaticPermissionsToDatabase= true; options.IsDynamicPermissionStoreEnabled = false; });

Answer

是否考虑添加OneTime.Run(),初始化全部用户角色权限,在权限多的情况下,Cache.SetManyAsync比较耗时 也可以添加Options开关

Answer

[maliming] said:

var permissions = (await PermissionDefinitionManager.GetPermissionsAsync()) 
                .Where(x => notCacheKeys.Any(k => GetPermissionNameFormCacheKeyOrNull(k) == x.Name)).ToList(); 

改为

var names = notCacheKeys.Select(k => GetPermissionNameFormCacheKeyOrNull(k)).ToArray(); 
 
var permissions = (await PermissionDefinitionManager.GetPermissionsAsync()) 
    .Where(x => names .Any(k => k == x.Name)).ToList(); 

速度从6秒到几秒? 6969ms到92ms

Answer

上面的问题,只解决了部分问题,我的程序是7.2.2 的微服务框架,没有升级到最新版本,但是会把一些高版本的优化,copy到本地重新发布dll替换原有的dll await Cache.SetManyAsync(cacheItems); 大量权限的时候设置缓存还是有2s,每次用户登录,获取Role ,User 权限都会有2s ,一起就是4s左右, 可能还要加OneTime方法,程序启动的时候把全部信息加载到缓存,后期用户登录才可能比较快。现在是第一次登录慢,第二次才快 系统启动热数据还是要加载到缓存

Answer

https://github.com/abpframework/abp/blob/dev/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionStore.cs#L178-L179

var permissions = (await PermissionDefinitionManager.GetPermissionsAsync())
                .Where(x => notCacheKeys.Any(k => GetPermissionNameFormCacheKeyOrNull(k) == x.Name)).ToList();

改为

var names = notCacheKeys.Select(k => GetPermissionNameFormCacheKeyOrNull(k)).ToArray();

var permissions = (await PermissionDefinitionManager.GetPermissionsAsync())
    .Where(x => names .Any(k => k == x.Name)).ToList();
Showing 1 to 10 of 61 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.1.0-preview. Updated on December 17, 2025, 07:08
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.