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

Sharepoint 2010 使用代码在SharePoint中修改web.config的最佳方法是什么,sharepoint-2010,Sharepoint 2010,使用代码在SharePoint中修改web.config的最佳方法是什么?我可以使用SPWebConfigModification或powershell。如果您想使用代码进行修改,SPWebConfigModification将是一个不错的选择,因为它可以在服务器场中的所有前端web服务器上修改web.config。通过PowerShell执行此操作几乎就像手动修改它一样,这对于SharePoint环境来说是不受鼓励的做法 如果您正在使用功能,您可能希望将代码放入功能接收器中 如果声明性修改满足

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

如果您想使用代码进行修改,SPWebConfigModification将是一个不错的选择,因为它可以在服务器场中的所有前端web服务器上修改web.config。通过PowerShell执行此操作几乎就像手动修改它一样,这对于SharePoint环境来说是不受鼓励的做法

如果您正在使用功能,您可能希望将代码放入功能接收器中

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


如果您想使用代码进行修改,SPWebConfigModification将是一个不错的选择,因为它将在服务器场中的所有前端web服务器上进行web.config修改。通过PowerShell执行此操作几乎就像手动修改它一样,这对于SharePoint环境来说是不受鼓励的做法

如果您正在使用功能,您可能希望将代码放入功能接收器中

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


您可以从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);
//添加标记映射
string modificationName=string.Format(@“添加[@tagType='Microsoft.SharePoint.WebControl.PeopleEditor'][@mappedTagType='PeopleEditor.CustPeopleFind,{0}']”,
Assembly.getExecutionGassembly().FullName);
SPWebConfigModification modification=new SPWebConfigModification//(modificationName,“configuration/system.web/pages/tagMapping”);
{
Path=“configuration/system.web/pages/tagMapping”,
名称=修改名称,
Value=string.Format(@“”),
所有者=所有者ID,
顺序=1,
类型=SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode
};
webApp.WebConfigModifications.Add(修改);
//保存更改
webApp.Farm.Services.GetValue().ApplyWebConfigModifications();
//序列化并跨服务器场传播更改
webApp.Update();
//创建持久对象
Common.createPersistentObject(webApp);
但是,我也应该提醒您,许多SharePoint专家不建议通过代码对web.config进行修改

祝你一切顺利


-Vighnesh

您可以从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);
//添加标记映射
string modificationName=string.Format(@“添加[@tagType='Microsoft.SharePoint.WebControl.PeopleEditor'][@mappedTagType='PeopleEditor.CustPeopleFind,{0}']”,
Assembly.getExecutionGassembly().FullName);
SPWebConfigModification modification=new SPWebConfigModification//(modificationName,“configuration/system.web/pages/tagMapping”);
{
Path=“configuration/system.web/pages/tagMapping”,
名称=修改名称,
Value=string.Format(@“”),
所有者=所有者ID,
顺序=1,
类型=SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode
};
webApp.WebConfigModifications.Add(修改);
//保存更改
webApp.Farm.Services.GetValue().ApplyWebConfigModifications();
//序列化并跨服务器场传播更改
webApp.Update();
//创建持久对象
Common.createPersistentObject(webApp);
但是,我也应该提醒您,许多SharePoint专家不建议通过代码对web.config进行修改

祝你一切顺利


-Vighnesh

取决于使用情况,你可以使用PowerShell,我刚刚写了一篇博客文章取决于使用情况,你可以使用PowerShell,我刚刚写了一篇博客文章