2015-11-11 3 views
1

Я добавляю новый контент на сайт Umbraco 7.3 через API Umbraco, и содержимое отображается правильно в таблице кэша бэк-офиса и cmsContentXml. Проблема заключается в том, что новый контент не отображается на сайте, потому что он не находится в файле umbraco.config, если я перепечатаю весь сайт, который показывается в нем.Регенерирующий umbraco.config через API Umbraco

Я не хочу, чтобы пользователи должны были публиковать сайт, поскольку контент должен быть автоматически импортирован для них. Я пытаюсь восстановить кеш с помощью 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 или есть лучший способ добавить мой контент, чем SaveAndPublishWi thStatus?

ответ

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(); 
Смежные вопросы