在站点定义上激活Web作用域功能

时间:2012-05-07 14:05:51

标签: sharepoint-2010

我正在使用网络范围功能创建网站定义,该功能可在当前网站上创建子网站。我想在用户根据该定义创建站点时在站点上激活此功能。

当我激活它时,该功能正常工作,问题是当我尝试根据定义创建网站时出现以下错误:

ID为“Id”的功能未安装在此服务器场中,无法添加到此范围。

我尝试将范围更改为Farm,但它会出现错误“部署步骤中出现错误'添加解决方案':无法将”Microsoft.SharePoint.Administration.SPWebService“类型的对象强制转换为”Microsoft.SharePoint“ .SPWeb'“,也就是说,我认为将这个功能置于农场范围内是没有意义的。

我的网站定义'网络功能'节点包含:

    <WebFeatures>
            <Feature ID="6e512cb1-1a3f-43d6-a756-55c1a9eadd2c" />
    </WebFeatures>

我的功能接收器方法是:

    public override void FeatureActivated(SPFeatureReceiverProperties properties)
    {
        SPWeb web = (SPWeb)properties.Feature.Parent;
        if (!web.Webs["subsite1"].Exists)
        {
            web.Webs.Add("subsite1");
            web.Update();
        }
    }

如果有人需要更多信息,请告诉我。

2 个答案:

答案 0 :(得分:1)

打开Feature设计器并选择Scope:WebApplication

答案 1 :(得分:0)

<SiteFeatures>

    <Feature ID="C85E5759-F323-4EFB-B548-443D2216EFB5" />

    <Feature ID="A392DA98-270B-4e85-9769-04C0FDE267AA" />

    <Feature ID="7C637B23-06C4-472d-9A9A-7C175762C5C4" />

</SiteFeatures>

<WebFeatures>

    <Feature ID="00BFEA71-DE22-43B2-A848-C05709900100" />

    <Feature ID="00BFEA71-E717-4E80-AA17-D0C71B360101" />

</WebFeatures>

<Modules>

    <Module Name="Home" />

</Modules>