c# - 带有 Redis 的 OutputCache 可在 Localhost 上运行,但不能在 Azure WebApp 上运行
问题描述
我正在编写一个标准的 MVC 5 应用程序,并在控制器上设置 OutputCache 标记,还安装了 StackExange.Redis 和 RedisOutputCache。相应地配置了 web.config。
当我在 localhost 中运行它时,缓存可以完美运行,但是一旦部署到 Azure WebApp 中,缓存就无法正常工作,因为我看到了正在发生的更改。此外,在远程调试应用程序时,我在控制器视图操作中看到断点命中。
我一直在寻找解决方案的日子,但我找不到任何答案,甚至没有类似的答案。我已经在 Azure 支持上提出了一张票。
所以我的问题是,有什么东西可以使 Azure WebApp 的行为不同于本地解决方案吗?我如何调试 Outputcache 以检查它为什么没有达到缓存版本?
附加信息:我在 Redis Cli 中看到 Outputcache 正在存储缓存的版本,只是它没有返回它。
谢谢
解决方案
好吧,我终于找到了问题所在。
我Thread.CurrentThread.CurrentCulture.Name
在VaryByCustomString()
函数中global.asax
使用创建基于文化的缓存版本。
但是,一旦部署到 Azure WebApp,这种文化似乎没有设置,因此检查失败并且OutputCache
认为 Redis 中没有任何版本。
推荐阅读
- ios - 解除警报控制器时,如何使标签文本恢复为原始成本
- python - 多列上 groupby.count 时出现 DASK 内存错误
- python - 按百分比抓鱼 - pygame
- c# - 找不到文件 obj\Debug\100\android\assets\Xamarin.Auth.dll.mdb'
- python - Kivy Recycle View 动态小部件高度导致滚动和跳跃滞后
- java - Java 类中的成员字段是否按声明顺序初始化?
- java - Hibernate 实体继承。单表延迟加载
- php - 如何在 PHP 中将数字十六进制签名添加到 PDF
- python - 错误“numpy.ndarray”对象不可调用
- java - 即使您没有源代码且未使用 -g 编译,是否有任何方法可以使用 JDB 检查调用参数?