无法在SharePoint 2010中使用COM激活功能

时间:2013-07-23 06:53:07

标签: sharepoint sharepoint-2010 client-object-model sharepoint-clientobject

            Guid featureId = new Guid("0af5989a-3aea-4519-8ab0-85d91abe39ff");

            ClientContext clientContext = new ClientContext("http://mysite:786/");

            Site clientSite = clientContext.Site;
            clientContext.Load(clientSite);

            FeatureCollection clientSiteFeatures = clientSite.Features;
            clientContext.Load(clientSiteFeatures);
            clientContext.ExecuteQuery();

            // Activate the feature
            clientSite.Features.Add(featureId, true, FeatureDefinitionScope.Site);
            //clientSiteFeatures.Remove(featureId, false); 
            clientContext.ExecuteQuery();
            MessageBox.Show("Success");
  

当我运行此代码时,我得到了异常:功能   ID“0af5989a-3aea-4519-8ab0-85d91abe39ff”未在农场安装   无法添加到范围。

     

我从链接http://social.technet.microsoft.com/wiki/contents/articles/7695.list-of-sharepoint-2010-features-id-displayname-and-scopes.aspx

获得了此功能ID      

请指导。

     

此致   Vikrant Raj Behal

4 个答案:

答案 0 :(得分:3)

FeatureDefinitionScope.None

这为我激活了一个网络范围的功能。

答案 1 :(得分:2)

根据MSDNFeatureCollection.Add方法具有以下签名

public Feature Add(
    Guid featureId,
    bool force,
    FeatureDefinitionScope featdefScope
) 

用于将功能添加到激活功能的集合中,并返回添加的功能

参数FeatureDefinitionScope用于指定要素定义的要素范围。 同时文档说:

  

它的值必须为FeatureDefinitionScope.Site或   FeatureDefinitionScope.Farm

这基本上意味着方法FeatureCollection.Add不接受FeatureDefinitionScope.Web的{​​{1}}值,因此不支持使用 Web范围激活功能。

在您的情况下,您似乎正在尝试通过CSOM激活不受支持的范围(例如Web)的功能


如何验证功能范围

featdefScope

答案 2 :(得分:0)

要使用客户端对象模型激活功能,必须使用沙箱解决方案进行部署。无法通过客户端对象模型

激活通过Farm Solutions部署的功能

答案 3 :(得分:0)

FeatureDefinitionScope.None

也适用于激活网站集功能。

添加功能的方式(Sandbox,Farm Solution)并不重要。