2010-02-18 43 views
0

嗨我正在使用下面的代码来缓存对象。WCF运行时缓存

HttpRuntime.Cache.Insert(“Doc001”,_document); HttpRuntime.Cache.Remove(“Doc001”);

我想知道缓存存储? (在客户端PC或IIS服务器上)

这是缓存对象的保存方式,通过以这种方式添加和删除缓存会影响任何其他客户端,比如说我有2个客户端连接并且都存储缓存“HttpRuntime.Cache.Insert(”Doc001“,_document);”和一个客户端删除缓存,是否只在客户端级别上删除?

回答

1

这将取决于您在何处编写此代码。如果你在WCF服务中这样做,那么对象将存储在托管此服务的进程的内存中(如果IIS然后是w3p.exe)。缓存将在服务的所有客户端之间共享,这意味着如果客户端从缓存中移除项目,其他客户端也会看到它被移除。

使用此构造时需要了解的重要一点是,运行时可能会决定在某些情况下(例如在低内存上运行)从缓存中过期对象,因此请始终检查缓存中是否存在对象使用它:不要假设如果你把它放在那里,你会发现它。您可能会阅读more about caching on MSDN

+0

我想在客户端级别缓存,我将使用什么? – francois 2010-02-18 09:36:34

0

缓存发生在网站(MVC)。