1

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

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

此场中未安装 ID 为“Id”的功能,因此无法将其添加到此范围。

我试图将范围更改为农场,但它让我出现错误“部署步骤'添加解决方案'中发生错误:无法将'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();
        }
    }

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

4

2 回答 2

2

打开功能设计器并选择范围:WebApplication

于 2014-05-14T22:48:48.247 回答
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>

于 2014-10-07T12:57:20.277 回答