Senparc.CO2NET
Senparc.CO2NET copied to clipboard
Senparc.CO2NET.Cache.CsRedis bug
就不翻译英文了.
Senparc.CO2NET/src/Senparc.CO2NET.Cache.CsRedis/ObjectCacheStrategy/BaseRedisObjectCacheStrategy.cs 行38 Client = new CSRedis.CSRedisClient(Config.SenparcSetting.Cache_Redis_Configuration); 应该用 Client = new CSRedis.CSRedisClient(RedisManager.ConfigurationOption);
否则 Senparc.CO2NET.Cache.CsRedis.Register.SetConfigurationOption(redisConnection); 连接配置无法生效 都是调用空配置
这个修改是不需要的: 第一,Config.SenparcSetting.Cache_Redis_Configuration 在初始化的时候已经从 appsettings.json 里面取值了(除非你没有按照标准初始化)。 第二,看一下这里的静态构造函数 static BaseRedisObjectCacheStrategy(),里面已经有赋值:
RedisManager.ConfigurationOption = Config.SenparcSetting.Cache_Redis_Configuration;
所以正常情况下,即使你用了 RedisManager.ConfigurationOption,值也是和 Config.SenparcSetting.Cache_Redis_Configuration相等的。
感谢交流!
微信的所有配置都是从DB取值 ,SenparcWeixinSetting 基本上没用到; 缓存从以下配置设置 Senparc.CO2NET.Cache.CsRedis.Register.SetConfigurationOption(redisConnection); Senparc.CO2NET.Cache.CsRedis.Register.UseKeyValueRedisNow(); + app.UseSenparcGlobal(env,null, { register.UseSenparcWeixinCacheCsRedis(); }); 就可以启用 这配置在MP AccessToken/JsapiToken 可以正常使用 可是为于MessageHandler 上下文缓存不能生效
MessageHandler 的缓存也是依赖于整体缓存策略的,所以需要按照 Sample 提供的注册过程,完整注册下来。否则默认就是用内存缓存。