当前场景(Sitecore 9)用户无法将任何项目发布到任何发布目标,甚至不能发布到Web数据库。当我们在Sitecore.config中将Publishing.CheckSecurity设置为true时,我们将面临此问题。
项目上没有工作流程,用户拥有项目的所有(读取,写入,删除,创建)访问权限。
我挖到了Sitecore.Kernel Dll并找到了区别
public bool CanPublish(ID itemId, User user, ref string explanation)
{
Assert.ArgumentNotNull(itemId, “itemId”);
Assert.ArgumentNotNull(user, “user”);
Assert.ArgumentNotNull(explanation, “explanation”);
if (!Settings.Publishing.CheckSecurity)
{
return true;
}
if (!this.CanPublishLanguage(itemId, user, ref explanation))
{
return false;
}
Item sourceItem = this.GetSourceItem(itemId);
if (sourceItem == null)
{
return this.CanPublishDeletion(itemId, user, ref explanation);
}
return this.CanPublishUpdate(sourceItem, user, ref explanation);
}
早些时候(Sitecore 8.1)“CanPublishLanguage”不存在。我已经获得了语言的所有访问权限,但仍然会在发布时跳过我的项目。该函数返回false。
如果我将此设置设为false,那么它工作正常。
请建议我是否缺少更多的配置更改。
这个问题与Sitecore 9有关,并在Sitecore 9.0 Update 2中修复。使用Sitecore提出此问题并获得此解决方案。
报告的问题看起来像是在Sitecore 9.0 Update-2中修复的问题:https://dev.sitecore.net/Downloads/Sitecore%20Experience%20Platform/90/Sitecore%20Experience%20Platform%2090%20Update2/Release%20Notes
要解决此问题,我们建议您将Sitecore解决方案升级到Sitecore XP 9.0 Update 2(版本180604)。
如果不可能,您可以尝试以下补丁:https://sitecore.box.com/s/swae96e2hhgrbid3keccmvzr4e8kbvr7要安装补丁,请按照归档中自述文件中的说明进行操作。