使用Redis的OutputCache在Localhost上工作但不在Azure WebApp上工作

时间:2018-06-15 16:36:29

标签: c# azure redis outputcache

我正在编写标准的MVC 5应用程序,并在控制器上设置OutputCache标记,还安装了StackExange.Redis和RedisOutputCache。相应地配置了web.config。

当我在localhost中运行此缓存时缓存工作正常,但是一旦部署到Azure WebApp中,缓存就不起作用,因为我看到了正在进行的更改。此外,当远程调试应用程序时,我看到断点在控制器视图操作中命中。

我一直在寻找解决方案的日子,但我找不到任何答案,甚至没有类似的东西。我已经在Azure支持上提出了一张票。

所以我的问题是,是否有一些东西可以使Azure WebApp的行为与本地解决方案不同? 我怎么能调试Outputcache来检查为什么它没有达到缓存版本?

附加信息:我在Redis Cli中看到Outputcache正在存储缓存版本,它只是不会返回它。

由于

1 个答案:

答案 0 :(得分:0)

好吧,我终于找到了问题。

我在Thread.CurrentThread.CurrentCulture.Name的{​​{1}}函数中使用VaryByCustomString()创建了基于区域性的缓存版本。

但是,一旦部署到Azure WebApp,就不会设置这种文化,因此检查失败,global.asax认为Redis中没有任何版本。