我遇到了这个问题而且我没有在网上找到任何答案。
我有一个名为“Document X”的内容类型,原始“Document”作为父级。 (ID为0x010100ACEA2663B318874AA9192CA9AF678614)
我已经有一个名为“Document X 1”的内容类型,其中“Document X”作为父级。 (ID为0x010100ACEA2663B318874AA9192CA9AF67861401)
当我使用父“Document X”创建一个名为“Document X 2”的新内容类型时,我收到错误“找到重复内容类型'文档X 2'”...
我检查了ULS,但没有报告错误。我可以从任何其他内容类型(开箱即用或我创建的其他内容,如“日历X”)创建新的内容类型,但我无法从“文档X”创建新的内容类型。 (并且我没有任何类似名称的内容类型......无论我使用什么名称,我都会得到同样的错误)
完整错误是:
找到重复的内容类型“文档X”。 解决Microsoft SharePoint Foundation的问题。 相关ID:b9d36bb8-1a8e-4ef4-bbd0-fbdf8e70d73b 日期和时间:2011年1月24日下午3:00:36
我的内容类型中心网站上发生了此错误,但我仅在此网站上使用和创建内容类型。我不使用Visual Studio创建它们,它在生产环境中,我们必须使用Site Settings或Designer创建它们,但两者都给我同样的错误。
我知道我在这里没有太多信息,我只是不知道在哪里先看..
如果有任何人有任何想法可以帮助我,我会非常感激,因为我已经失去了几个小时,并且不知道在哪里看...
非常感谢!
答案 0 :(得分:5)
我发现了我的问题,所以如果有一天这可以帮助某些人。
看起来SharePoint有时会在更新内容数据库中的字段时遇到一些问题。
dbo.ContentTypes 表中的字段 NextChildByte 是问题所在。
假设我创建了一个ID为0x010100ACEA2663B318874AA9192CA9AF678614且文档为父级的内容类型(0x0101)
SharePoint将在 dbo.ContentTypes 表中创建一个条目。
当我创建另一个内容类型,第一个内容类型为父...此新内容类型的ID将为0x010100ACEA2663B318874AA9192CA9AF678614 * 01 *)此01来自 NextChildByte 来自 dbo.ContentTypes 表的em>字段。
现在,SharePoint应该更新 dbo.ContentTypes 表并将字段 NextChildByte 设置为2,以便使用同一父代创建的下一个内容类型为0x010100ACEA2663B318874AA9192CA9AF678614 * 02 *
我的问题是.. SharePoint没有更新 NextChildByte 字段,因此SharePoint尝试创建ID已为0x010100ACEA2663B318874AA9192CA9AF678614 * 01 *的内容类型...
在我的情况下..我终于能够删除内容类型0x010100ACEA2663B318874AA9192CA9AF678614 * 01 *。当我重新创建它时,SharePoint确实将 NextChildByte 更新为2,因此我可以在此之后创建更多的子内容类型。
编辑:之后我发现了这篇博文。看起来这个脚本可以为我修复它。这是最好的选择,因为更新数据库不是解决方案。http://www.mattjimison.com/blog/2011/06/21/a-duplicate-content-type-found-error/
干杯!