C# 激活Sharepoint功能时的重复值
我在Sharepoint 2010中有一个功能,可以向Sharepoint网站添加SPWebConfigModification。它向appSettings部分添加一个键 功能激活代码如下所示:C# 激活Sharepoint功能时的重复值,c#,sharepoint,powershell,sharepoint-2010,C#,Sharepoint,Powershell,Sharepoint 2010,我在Sharepoint 2010中有一个功能,可以向Sharepoint网站添加SPWebConfigModification。它向appSettings部分添加一个键 功能激活代码如下所示: private static void ActivateWebConfigModifications(SPWebApplication webApplication) { webApplication.WebConfigModifications.Add(GetConfigMod
private static void ActivateWebConfigModifications(SPWebApplication webApplication)
{
webApplication.WebConfigModifications.Add(GetConfigMod());
webApplication.Update();
webApplication.Farm.Services.GetValue<SPWebService>().ApplyWebConfigModifications();
}
private static void DeactivateWebConfigModifications(SPWebApplication webApplication)
{
Collection<SPWebConfigModification> modifications = webApplication.WebConfigModifications;
foreach (SPWebConfigModification mod in modifications)
{
if (mod.Owner == GetConfigMod().Owner)
{
modifications.Remove(mod);
}
}
webApplication.Update();
webApplication.Farm.Services.GetValue<SPWebService>().ApplyWebConfigModifications();
}
有什么想法吗?这看起来像是一个缓存问题,PowerShell缓存了很多SharePoint对象,包括网站模板。它也不会在GAC中重新加载更新的dll。部署wsp后,我通常会关闭所有PowerShell窗口,然后重新启动iis和owstimer。上面的PowerShell代码块会重新填充$w对象,并显示调用Get-SPWebApplication时web应用程序的状态。我在部署步骤和功能激活之间运行代码块,它返回预期的结果。抱歉,我的意思是说我使用powershell来确认当时content DB中的内容
Add-PSSnapin Microsoft.SharePoint.PowerShell
$w = Get-SPWebApplication -Identity http://SiteUrl
$w.WebConfigModifications