0

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

2 回答 2

1

如果您的网站仅在一台服务器上,那么可以。

如果您的网站分布在多台服务器上,则不会。缓存键和数据仅在存储它的服务器上可用。

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

于 2013-02-25T18:04:54.340 回答
1

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

要分配/更新 中的值Cache,您只需像设置任何值一样设置DictionaryHashTable

Cache["doc"] = newValue;

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

于 2013-02-25T18:05:13.170 回答