Umbraco 使用ContentService API删除文档不会刷新缓存
在Umbraco 7中,我使用ContentService API插入、更新或删除文档。插入或更新文档后,会立即显示正确的内容,但删除后,由于缓存的原因,可以查看删除的数据。要清除缓存,我从App_数据中删除DistCache文件夹的数据 如何以编程方式刷新缓存 这是我的密码:Umbraco 使用ContentService API删除文档不会刷新缓存,umbraco,umbraco7,Umbraco,Umbraco7,在Umbraco 7中,我使用ContentService API插入、更新或删除文档。插入或更新文档后,会立即显示正确的内容,但删除后,由于缓存的原因,可以查看删除的数据。要清除缓存,我从App_数据中删除DistCache文件夹的数据 如何以编程方式刷新缓存 这是我的密码: 通常,删除后不必手动更新缓存。您可以检查日志文件中是否存在可能的错误 如果要手动刷新,可以调用以下方法 umbraco.library.RefreshContent(); 注意:在具有多个节点的Umbraco实例中,该
通常,删除后不必手动更新缓存。您可以检查日志文件中是否存在可能的错误 如果要手动刷新,可以调用以下方法
umbraco.library.RefreshContent();
注意:在具有多个节点的Umbraco实例中,该方法非常慢
正如@Harvey在评论中所说,使用service.MoveToRecycleBin是有效的
好的该方法将取消发布内容,然后将其移动到
回收站
最终代码:
如果在“内容”选项卡旁的省略号上单击鼠标右键,然后单击“重新发布整个网站”,也可以清除Umbraco后台办公室中的缓存。从技术上讲,这不是一种程序化的方式,但它很快/简单,并且可以完成任务
https://i.stack.imgur.com/MIUOh.jpg
这是传统图书馆,你不应该使用它@Ali尝试先取消发布元素,然后删除它。我现在无法测试它,但“取消发布”事件将触发所有缓存刷新程序,以从已发布内容缓存中删除此项目。谢谢@Mark。我会查日志的。谢谢你@MarcinZajkowski。我将对此进行测试。我相信更新后的方法可以在ContentService上找到:ApplicationContext.Current.Services.ContentService.com;您最好调用service.MoveToRecycleBin-此方法将首先取消发布内容,然后将其移动到回收站。我相信删除只会直接从数据库中删除它。谢谢@Harvey,它工作得很好。不幸的是,这不是一个好方法,因为重新发布整个网站不会影响网站应用程序数据的DistCache文件夹。
public string DeleteStudent(int studentID)
{
IContentService service = ApplicationContext.Current.Services.ContentService;
if (studentID != 0)
{
IContent student = service.GetById(studentID);
if (student != null && student.ContentType.Alias == "dtStudent")
{
service.MoveToRecycleBin(student);
return "Done!";
}
}
return "Error!";
}
https://i.stack.imgur.com/MIUOh.jpg