我有一个关于在功能冲压web.config文件中修改一个小问题在这里(SP2010 [Web应用程序级别功能,激活缺省])问题更改Web.config文件的SharePoint
我面临两个怪问题
- 像(添加子节点)应用的修改在web.config中出现多次。
- 在功能停用时,我将删除对所有者的修改,它获得修改,但是 这些不会被删除。
我在功能激活过程中使用了下面的代码片段。
ModificationEntry[] enries =
{
new ModificationEntry("someName", "someSection", SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode)
};
SPWebApplication WebApp = (SPWebApplication)properties.Feature.Parent;
WebApp.WebConfigModifications.Clear();
foreach (ModificationEntry entry in enries)
{
// CreateModification simply return me SPWebConfigModification
SPWebConfigModification configModificationItem = CreateModification(entry, properties.Feature.DefinitionId.ToString());
if (!WebApp.WebConfigModifications.Contains(configModificationItem))
{
WebApp.WebConfigModifications.Add(configModificationItem);
}
}
WebApp.Farm.Services.GetValue<SPWebService>().ApplyWebConfigModifications();
WebApp.Update();
这就是我正在做的功能停用。
if (webApp != null)
{
Collection<SPWebConfigModification> collection = webApp.WebConfigModifications;
int iStartCount = collection.Count;
// Remove any modifications that were originally created by the owner.
for (int c = iStartCount - 1; c >= 0; c--)
{
SPWebConfigModification configMod = collection[c];
if (configMod.Owner == properties.Feature.DefinitionId.ToString())
collection.Remove(configMod);
}
// Apply changes only if any items were removed.
if (iStartCount > collection.Count)
{
webApp.Update();
webApp.Farm.Services.GetValue<SPWebService>().ApplyWebConfigModifications();
}
}
请评论!
其中是ModificationEntry/CreateModification的代码。你似乎没有一个'路径'变量在任何地方(除非是someSection),但那么'价值' – djeeg 2011-02-03 22:18:16