这对整个网站来说是全球性的吗?

时间:2013-02-25 18:00:41

标签: c# asp.net xpath xml-parsing

我需要将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);
    }

2 个答案:

答案 0 :(得分:1)

如果您的网站只在一台服务器上,那么是。

如果您的网站分布在多个服务器上,那么没有。 缓存密钥和数据仅在存储它的服务器上可用。

例如,如果您的服务器位于Amazon EC2中,则可以使用ElastiCache来确保缓存在分布式服务器环境中可用。

答案 1 :(得分:1)

是的,ASP.NET Cache对象是站点范围的。管理Cache和设置过期规则等有很多选项。

要分配/更新Cache中的值,您只需将其设置为DictionaryHashTable值:

Cache["doc"] = newValue;

您可以在此处阅读有关MSDN文档中Cache对象的更多信息:http://msdn.microsoft.com/en-us/library/aa478965.aspx#aspnet-cachingtechniquesbestpract_topic4