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

时间:2010-11-07 22:02:42

标签: sharepoint-2010

使用代码在SharePoint中修改web.config的最佳方法是什么?我可以使用SPWebConfigModification或powershell。

2 个答案:

答案 0 :(得分:2)

如果您想使用代码执行此操作,SPWebConfigModification将是一个不错的选择,因为它将负责您的服务器场中所有前端Web服务器的web.config修改。通过PowerShell执行此操作几乎就像手动修改它一样,这是不鼓励的SharePoint环境实践。

如果您使用的是功能,则可能需要将代码放入功能接收器中。

如果声明性修改符合您的需要,您可能更喜欢(通过代码方法)。 SafeControl等条目本身由Feature框架支持,它应该是此类条目的首选。声明性修改的另一种变体是通过补充的.config文件,如下所述:

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

答案 1 :(得分:1)

您可以从VS 2010代码进行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进行修改。

一切顺利

-Vighnesh