通过Umbraco API

时间:2015-11-11 10:33:26

标签: asp.net umbraco umbraco7

我通过Umbraco API向Umbraco 7.3网站添加了一些新内容,内容在后台和cmsContentXml缓存表中正确显示。问题是新内容没有出现在网站上,因为它不在umbraco.config文件中,如果我重新发布内容然后显示的整个网站。

我不希望用户必须重新发布该网站,因为内容应该自动为他们导入。我一直在尝试使用API​​重新生成缓存,但没有任何因素导致缓存文件更新。

我正在使用:

contentService.RePublishAll();
contentService.RebuildXmlStructures(new int[] { UmbracoNodeUtils.PEOPLE_DOCUMENT_TYPE_ID, UmbracoNodeUtils.EXPERTISE_DOCUMENT_TYPE_ID });

我还试过以下几行

umbraco.library.UpdateDocumentCache(createdNode.Id);
umbraco.library.RefreshContent();

但他们会在消息

中抛出异常
Value cannot be null.\r\nParameter name: refresher.

有没有人知道如何通过API强制缓存更新,还是有比SaveAndPublishWithStatus更好的方式添加我的内容?

1 个答案:

答案 0 :(得分:0)

事实证明,您无法使用控制台应用清除缓存文件。您可以做的是使用WebApi按https://our.umbraco.org/forum/developers/api-questions/39164-Console-Application-Publishing-Problem#comment-189720

清除缓存

您可以创建一个包含以下内容的控制器:

var contentService = Services.ContentService;
contentService.RePublishAll();

umbraco.library.RefreshContent();