以下是我的内容树的简化版本。
- Content - Articles - Article 1 - About Us
假设我添加了2个节点,一个作为文章的子节点,另一个作为根级别。我的树现在看起来像这样。
- Content - Articles - Article 1 - Article 2 - About Us - Terms
Article 2
和Terms
都保存到umbracoNode表中,“level”设置为2.这不是Terms
的正确级别。它的等级应为1。
这导致发布失败,特别是在umbraco.cms.presentation.editContent.Publish:
if (_document.Level == 1
|| new cms.businesslogic.web.Document(_document.Parent.Id).Published)
{
// Code that publishes the node
}
发生的事情是,由于等级不等于1,它会评估条件的第二部分。使用当前节点的父标识(-1)实例化Document
后,它将检查具有该标识的cmsContentVersion条目。但是,它是根节点,并且根目录的cmsContentVersion中没有任何内容,所以它就是kaboom。
可能有或没有兴趣的一些事情:
#
,这也是错误的。我不确定这是否相关。非常感谢任何帮助。
答案 0 :(得分:0)
修复实际上最终非常简单,希望这可以让别人头疼。
我只需要将level
更新为0以获取根音(在更新之前它是1)。
UPDATE umbracoNode
SET [level] = 0
WHERE id = -1
我认为这是版本3的一些工件,由于某种原因,在升级之前没有解决。