您的位置:首页 > 产品设计 > UI/UE

SharePoint【调试,诊错系列】-- 在当前站点集或子网站中找到功能 {GUID} 中定义的 ID 为 0x0100GUID的内容类型

2013-02-21 14:48 183 查看

问题描述:

在测试环境上部署了一个包含ContentType的解决方案,VS2010修改内容后想重新部署,死活部署不上去了:





错误日志内容如下:

SPException thrown: Message: 在当前站点集或子网站中找到功能 {b7edbfe2-c02e-4560-b314-b23c7b049d10} 中定义的 ID 为 0x0100983A544EBE5040C28C797562907C29F2 的内容类型。. Stack: 在 Microsoft.SharePoint.Utilities.SPUtility.ThrowSPExceptionWithTraceTag(UInt32 tagId, ULSCat traceCategory, String resourceId, Object[] resourceArgs) 在 Microsoft.SharePoint.Administration.SPElementDefinitionCollection.ProvisionFieldsAndContentTypes

查了资料说是需要加入Overwrite=”True”,测试后发现如果首次部署的时候就加入Overwrite,那么后面的就没问题。









但是这个只针对最开始就加的有效,如果是报错后再加入,激活时会报的错误更恶心:

部署步骤“激活功能”中出现错误:





这位同志跟我遇到了同样的问题:http://www.go4answers.com/Example/missing-content-types-central-128297.aspx

解决方案:

最后结合以下两篇文章解决问题:

第一篇解释原因,没太看懂

第二篇讲解决方法:数据库删除

操作如下:

1.SQL查找到之前部署过的ContentType

SELECT [SiteId]

[code] ,[Class]

,[Scope]

,sys.fn_varbintohexstr([ContentTypeId]) as CT

,[Version]

,[NextChildByte]

,[Size]

,[Definition]

,[ResourceDir]

,[IsFromFeature]

FROM [WSS_Content].[dbo].[ContentTypes]

where (sys.fn_varbintohexstr(ContentTypeId) LIKE '0x0100983a544ebe5040c28c797562907c29f2%')

[/code]





2.修改字段 IsFromFeature 为0

Update [WSS_Content].[dbo].[ContentTypes]

[code]SET [isfromFeature]= 0

where (sys.fn_varbintohexstr(ContentTypeId) LIKE '0x0100983a544ebe5040c28c797562907c29f2%')

[/code]




3.将不带Overwrite=”True”的解决方案重新部署一遍,这时候会报错,但ContentType已经部署上去了,到网站设置中找到部署的内容类型,删除掉:









4.再回SQL查询,结果已经为空





5.接下来,在VS2010中给ContentType添加Overwrite=”True”后重新部署,以后再部署解决方案应该就不会报错了





备注:加入Overwrite=”True”后,数据库表中的Definition字段里面有值,不知道系统是不是就是根据这个来判断是否可重写的



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐