如何在MvcSiteMapProvider和缓存中使用ChangeFrequency

时间:2016-06-28 06:53:18

标签: asp.net-mvc-5 sitemap mvcsitemapprovider

我有一个继承自" DynamicNodeProviderBase"的外部类。为了配置我的站点地图,我正在动态构建我的站点地图,并且MvcSiteMapProvider正在缓存数据。我想要做的是每隔2小时清除一次缓存数据,如果发生了变化,再次构建它,我设置了这些代码但是我不知道他们究竟在做什么。所以我有两个问题:

1-如何每2小时清除一次SiteMap缓存,最好使用以下代码:

2-这些以下代码到底是做什么的:

foreach (var Something in Something.else)
{
dynamicNode = new DynamicNode();

 dynamicNode.ChangeFrequency = ChangeFrequency.Hourly;
 dynamicNode.UpdatePriority = UpdatePriority.Normal;

 //  System.Web.HttpContext.Current.Cache["dynamicNode"] = dynamicNode;

yield return dynamicNode;
}

1 个答案:

答案 0 :(得分:0)

  

如何每2小时清除一次SiteMap缓存?

将缓存持续时间设置为120分钟

内部DI

<appSettings>
    <add key="MvcSiteMapProvider_CacheDuration" value="120"/>
</appSettings>

外部DI

TimeSpan absoluteCacheExpiration = TimeSpan.FromHours(2);
  

什么是ChangeFrequencyUpdatePriority

这些设置适用于默认情况下托管在/sitemap.xml的XML站点地图端点。 sitemap protocol准确地解释了它们的用途。