代码之家  ›  专栏  ›  技术社区  ›  Ybbest

使用代码在SharePoint中修改web.config的最佳方法是什么

  •  0
  • Ybbest  · 技术社区  · 14 年前

    2 回复  |  直到 14 年前
        1
  •  1
  •   Vighnesh Bendre    14 年前

    您可以从VS2010代码中修改web.config。同样的例子见下面的代码。我已经实施了

                //Add tagMapping
                string modificationName = string.Format(@"add[@tagType='Microsoft.SharePoint.WebControls.PeopleEditor'][@mappedTagType='PeopleEditor.CustPeopleFind,{0}']", 
                    Assembly.GetExecutingAssembly().FullName);
                SPWebConfigModification modification = new SPWebConfigModification //(modificationName, "configuration/system.web/pages/tagMapping");
                {
                    Path = "configuration/system.web/pages/tagMapping",
                    Name = modificationName,
                    Value = string.Format(@"<add tagType=""Microsoft.SharePoint.WebControls.PeopleEditor"" mappedTagType=""PeopleEditor.CustPeopleFind"" />"),
                    Owner = ownerID,
                    Sequence = 1,
                    Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode                    
                };
                webApp.WebConfigModifications.Add(modification);
    
                //Save changes
                webApp.Farm.Services.GetValue<SPWebService>().ApplyWebConfigModifications();
    
                //Serialize and propagate changes across farm
                webApp.Update();
    
                //Create the persistent objects
                Common.CreatePersistentObjects(webApp);
    

    但是,我也要警告您,许多SharePoint专家不建议通过代码修改web.config。

    -活力

        2
  •  2
  •   Ashish Patel    14 年前

    如果要使用代码执行此操作,SPWebConfigModification将是一个不错的选择,因为它将处理服务器场中所有前端web服务器上的web.config修改。通过PowerShell完成这项工作几乎就像手动修改它一样,这对于SharePoint环境来说是不可取的做法。

    如果声明性修改满足了您的需要,那么您可能也更喜欢这种方法(而不是代码方法)。像SafeControl这样的条目本机受Feature framework支持,而featureframework应该是这些条目的首选。声明性修改的另一个变体是通过补充的.config文件,如下所述:

    http://msdn.microsoft.com/en-us/library/ms460914.aspx