使用代码在SharePoint中修改web.config的最佳方法是什么?我可以使用SPWebConfigModification或powershell。
答案 0 :(得分:2)
如果您想使用代码执行此操作,SPWebConfigModification将是一个不错的选择,因为它将负责您的服务器场中所有前端Web服务器的web.config修改。通过PowerShell执行此操作几乎就像手动修改它一样,这是不鼓励的SharePoint环境实践。
如果您使用的是功能,则可能需要将代码放入功能接收器中。
如果声明性修改符合您的需要,您可能更喜欢(通过代码方法)。 SafeControl等条目本身由Feature框架支持,它应该是此类条目的首选。声明性修改的另一种变体是通过补充的.config文件,如下所述:
答案 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