通过 Umbraco API 重新生成 umbraco.config

Regenerating umbraco.config through the Umbraco API

我正在通过 Umbraco API 向 Umbraco 7.3 站点添加一些新内容,并且内容正确显示在后台和 cmsContentXml 缓存 table 中。问题是新内容没有出现在网站上,因为它不在 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 更好的添加内容的方法?

事实证明您无法使用控制台应用程序清除缓存文件。您可以做的是使用 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();