首页 文章

使用Redis的Asp.Net Web API输出缓存不起作用

提问于
浏览
1
  • Redis正在Windows上运行(服务 - > Redis服务器)

  • 已配置Web.config

<caching>
 <outputCache defaultProvider="MyRedisOutputCache" enableOutputCache="true" enableFragmentCache="true" sendCacheControlHeader="true">
    <providers>
      <add name="MyRedisOutputCache" type="microsoft.web.redis.redisoutputcacheprovider" host="127.0.0.1" port="6379"accesskey="" ssl="false" />
    </providers>
  </outputCache>
</caching>
  • 输出缓存属性已添加到我的Web Api控制器中

[CacheOutput(ClientTimeSpan = 60,ServerTimeSpan = 60)]

  • 缓存正在运行,但Redis不包含任何密钥

redis 127.0.0.1:6379> keys *(空列表或设置)redis 127.0.0.1:6379>

  • 还尝试注册我的自定义输出缓存提供程序

public override string GetOutputCacheProviderName(HttpContext context){return“MyRedisOutputCache”; }

什么都没有帮助:(任何想法?

1 回答

  • 0

    我终于能够通过卸载已经过时的现有redis安装来解决问题https://github.com/rgl/redis

    如果您从那里安装了redis,那么请继续阅读...

    然后我从https://chocolatey.org/packages/redis-64安装了 redis-64 ,它运行得很好 .

    • 一旦通过chocolatey,goto C:\ProgramData\chocolatey\lib\redis-64 在管理命令提示符或powershell上安装并运行以下命令将redis注册为windows服务

    redis-server --service-install redis.windows-service.conf --loglevel verbose

    • 然后创建一个文件夹 Logs (没有这个服务将无法启动)

    • 运行服务 redis-server --service-start

相关问题