如果我在同一服务器上运行的多个网站中有以下行,那么该应用程序写入同一缓存记录会出现任何问题吗?
HttpContext.Current.Cache["SearchResults"] = myDataTable;
我知道文档说每个应用域都有一个缓存,但我不太明白这意味着什么。
https://msdn.microsoft.com/en-us/library/system.web.httpcontext.cache 每个应用程序域都有一个Cache类实例。作为一个 结果,Cache属性返回的Cache对象是 缓存应用程序域中所有请求的对象。
答案 0 :(得分:1)
应用程序域是公共语言基础结构(CLI)中使用的一种机制(类似于操作系统中的进程),用于将已执行的软件应用程序彼此隔离,以使它们不会相互影响。
因此,当您写入缓存时,它将存储在该应用程序域的内存中,如果您有Web园(具有多个工作进程)或Web场,那么请求可能由diff worker proc / node提供,然后那些node / work proc无法访问缓存,因为它们完全是差异应用域。
所以它说明缓存是针对单个app域的,为了解决上述问题,你需要寻找集中式缓存存储。