2

我有一个广泛使用的遗留应用程序HttpContext.Cache......
这个应用程序现在应该迁移到Windows Azure (multi-role)
它当然会导致缓存在不同角色上不同步的问题。
我正在考虑将我的“AzureCacheWrapper”(wrapper on )注入(我正在使用 Autofac)中,以便旧应用程序继续工作但使用 Azure 缓存来代替? 通常我们应该实现类似的东西,但不幸的是,有一些第 3 方 DLL 正在使用我们无权访问的缓存(并且不知道第 3 方库何时使用 Http 缓存)Microsoft.ApplicationServer.Caching.DataCacheHttpContext.Cache

ICacheProvider

我认为缓存提供程序不能通过 web.config(如 OutputCaching)进行配置,所以在我看来,唯一的解决方案是以某种方式将我的实现注入到运行时缓存上的 Add/Insert/Get 方法中。不幸的是,由于 System.Web.Caching.Cache (密封类)的 .NET 实现,我认为我不能重写HttpContextBase以返回不同的缓存或注入System.Web.Caching.Cache自身......

谢谢你的帮助!:)

4

1 回答 1

0

我认为您的应用程序需要代码/架构更改...

如果您有自己的类来处理获取和设置缓存,那么现在可能更容易在一个地方更改您的代码/架构。

如果您要使用单一角色,那么您的 scinario 中不存在任何问题。如果可能的话,您可以在 ExtraLarge 插槽中运行您的 webrole。

于 2013-01-24T15:20:22.357 回答