我需要将xml文件加载到内存中,并使其可用于整个站点的全局。这段代码能实现吗?
如果是这样,将来如何更新这个“缓存”版本?
XPathDocument ConvProductDoc;
ConvProductDoc = Cache["doc"] as XPathDocument;
if (ConvProductDoc == null) {
ConvProductDoc = new XPathDocument(HttpContext.Current.Request.MapPath(@"\data\foo\bar\my.xml"));
Cache.Insert("doc", ConvProductDoc);
}
答案 0 :(得分:1)
如果您的网站只在一台服务器上,那么是。
如果您的网站分布在多个服务器上,那么没有。 缓存密钥和数据仅在存储它的服务器上可用。
例如,如果您的服务器位于Amazon EC2中,则可以使用ElastiCache来确保缓存在分布式服务器环境中可用。
答案 1 :(得分:1)
是的,ASP.NET Cache
对象是站点范围的。管理Cache
和设置过期规则等有很多选项。
要分配/更新Cache
中的值,您只需将其设置为Dictionary
或HashTable
值:
Cache["doc"] = newValue;
您可以在此处阅读有关MSDN文档中Cache
对象的更多信息:http://msdn.microsoft.com/en-us/library/aa478965.aspx#aspnet-cachingtechniquesbestpract_topic4