我有一个广泛使用HttpContext.Cache
...的遗留应用程序
此应用程序现在假设转移到 Windows Azure(多角色)
它当然会导致缓存在不同角色上失去同步的问题
我正在考虑注入(我正在使用Autofac)我的“AzureCacheWrapper”(Microsoft.ApplicationServer.Caching.DataCache
上的包装器)到HttpContext.Cache
所以遗留应用程序继续工作但是使用Azure缓存呢?登记/>
通常我们应该实现像ICacheProvider
这样的东西但不幸的是有一些第三方DLL正在使用我们无法访问的缓存(并且不知道第三方库何时使用Http缓存)
我不认为缓存提供程序可以通过web.config配置(如OutputCaching),所以我觉得唯一的解决方案是以某种方式将我的实现注入运行时缓存中的Add / Insert / Get方法。
不幸的是,由于System.Web.Caching.Cache(密封类)的.NET实现,我认为我不能覆盖HttpContextBase
以返回不同的缓存或注入System.Web.Caching.Cache
本身......
感谢您的帮助! :)
答案 0 :(得分:0)
我认为您的应用程序需要代码/架构更改......
如果您有自己的类来处理获取和设置缓存,那么现在可以更容易地在一个地方更改您的代码/架构。
如果您要使用Single role,那么您的scinario中不存在任何问题。如果可能,您可以在ExtraLarge插槽中运行webrole。