У меня есть функция в Sharepoint 2010, которая добавляет SPWebConfigModification на сайт sharepoint. Он добавляет ключ к разделу AppSettingsПовторяющиеся значения при активации функции Sharepoint
активации Характеристика Код выглядит следующим образом:
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();
}
Проблема и последовательность событий.
1) Разверните решение wsp с функцией. Успех
2) Изучите файл WebConfig для правильной записи об установке. appSettings правильно
3) Взять и удалить решение wsp. Отвод и удалить успех
4) Изменить значение WebConfigModification в художественном коде
5) Deploy ПБВ с функцией, содержащей новое значение. Успешность
6) Изучите файл WebConfig для правильной записи об установке. Запись appSettings содержит новое значение.
7) В центральном администраторе отключите функцию. Успех
8) Активировать функцию. Успешность
9) Изучите файл WebConfig для правильной записи об установке. Запись appSettings содержит значение OLD.
Почему старое значение сохраняется?
При рассмотрении WebConfigModifications с помощью PowerShell Я считаю, что старое значение присутствует в коллекции, когда следующий код запускается в Powershell:
Add-PSSnapin Microsoft.SharePoint.PowerShell
$w = Get-SPWebApplication -Identity http://SiteUrl
$w.WebConfigModifications
Есть идеи?
Блок кода powershell выше перенастраивает объект $ w и показывает состояние веб-приложения в момент вызова Get-SPWebApplication. Я запустил этот блок кода между этапами развертывания и активации функции, и он возвращает ожидаемое. Извините, человек, который сказал, что я использую powershell, чтобы подтвердить, что находится в БД контента в это время – Xariex