System.Web.Caching或System.Runtime.Caching是.NET 4 Web应用程序的首选

我正在将caching添加到ASP.NET Web应用程序。 这是.NET 4,所以我可以使用System.Runtime.Caching命名空间中的类(根据我的理解,它被添加来提供与System.Web.Caching类似的function,但是对于非Web应用程序,应用。)

但是因为这一个networking应用程序,我最好使用System.Web.Caching? 还是以某种方式更新的System.Runtime.Caching优越?

Microsoftbuild议使用System.Runtime.Caching进行所有高速caching目的。 看到这个: http : //msdn.microsoft.com/en-us/library/dd997357.aspx

虽然,我遇到了几个线程,人们有MemoryCache.Default实例的问题。 过了一段时间,它停止正常工作。 您使用Add或Set方法添加的任何项目实际上都不会被添加到caching中。 我试了一样,并能够显式调用MemoryCache.Default.Dispose()方法重现此问题。

以下是链接: MemoryCache Empty:设置后返回null

http://forums.asp.net/t/1736572.aspx/1

我的build议是使用System.Web.Caching(HttpContext.Current.Cache)

更新:

这个问题已经被MS修复了。 检查接受的答案在下面的post: 运行时caching问题已解决

System.Runtime.Caching允许您caching所有.Net应用程序,而不仅仅是IIS工作进程。 所以,如果你有一个要求在多个场景中访问caching,使用System.Runtime。 您也可以检查此caching适配器,它允许您在运行时,Web和应用结构caching之间进行交换。 https://bitbucket.org/glav/cacheadapter

还有一点,如果您有一个多服务器场,并且负载平衡configuration,请确保您有粘滞会话或分布式caching模型。