重要提示
首先阅读下面的更新3。这已被确认为Kentico中的一个错误。
原帖:
我希望有人可以帮我解决一个非常令人沮丧的问题。我有一个本地的单服务器多站点(2个站点)Kentico 9实例。我还有另一个环境设置为具有2个服务器的Web场。前者配置为通过Staging模块与后者同步。
除了角色之外,一切正常。我发现当角色被更改和同步时,它会复制针对模块设置的任何权限,但不会同步对页面类型或自定义表的权限所做的任何更改。事实上,如果我在目标上添加这些权限然后重新同步我看到这个权限实际上已被删除。因此,同步任务的行为就好像我已从源头删除了所有这些权限。
我确定我已经设置了正确的分期。正如我所说,它适用于所有其他对象。我的源配置了2个临时服务器,每个站点一次,我添加了以下web.config密钥以确保正确地暂存全局对象:
<add key="CMSStagingTreatServerNamesAsInstances" value="true" />
<add key="CMSStagingLogGlobalObjectsOnlyForAssignedSites" value="true" />
最初我在CMSModuleLoader
Init
方法中排除了一系列对象,但是我已经完全删除了所有这些对象并仍然观察到相同的行为。我也试过删除上面的web.config键。因此,就我而言,这已在香草分期设置中进行了测试。
您将获得任何建议。
更新
我发现使用导入/导出功能将角色导出到目标时会发生同样的事情。所以现在我无法部署角色。我还应该指出事件日志中没有错误或警告。此外,值得一提的是,我已为除内容之外的所有更改配置了暂存。
更新2
(请忽略此更新 - 我已经错误地配置了登台服务器。请参阅评论)
进一步调查后,我现在看到暂存任务在两个站点上创建了相同的角色,所以我最终在目标上有两个具有相同代码名称的角色。我猜这可能是问题的原因。这是一个Kentico漏洞吗?有问题的角色是站点级角色,而不是全局角色。在同步时,我选择“所有”服务器,但我对this post的理解是,在这种情况下,全局对象只会同步一次。虽然我不确定网站级角色是否是技术上的全局对象。在任何情况下都不应该将站点的角色同步到不同的目标站点。
更新3
Kentico现已承认这是一个错误,并承诺在他们的标准7天内修复。他们将发布他们的修补程序作为修补程序。发生这种情况时我会在这里更新。