覆盖 DistributedMemoryCache 以使用 DistributedSQLCache

问题描述

我有一个使用 distributedMemoryCache 的 aspnet core 2.2 应用程序,我想将其更改为 distributedsqlCache,而无需重新编译和更改该应用程序(它已编译),因此我想为其添加一个插件(它有一个插件系统) 将缓存从内存缓存更改为 sql 缓存。这可能吗,例如通过调用 ConfigureServices?我试过没有用:

public void ConfigureServices(IServiceCollection services,IConfiguration configuration)
        {
            services.AddSession();
            services.AdddistributedsqlServerCache(options =>
            {
                options.ConnectionString =
                   "Data Source=etcetc....";
                options.SchemaName = "dbo";
                options.TableName = "TestCache";
            });

            services.AddMvc();

            
        }

我该怎么做?我想利用 sql 服务器缓存在此应用程序上运行适当的网络花园和网络农场。

解决方法

NopCommerce 目前支持内存、SqlServer 和 Redis 作为缓存类型 OTB。

为了替换此元素或您通常会在 ConfigureServices 方法中找到的任何其他元素,您需要为插件中的 INopStartup 提供自定义实现。