public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
using (SPSite site = ((SPSite)properties.Feature.Parent))
{
SPWebApplication webApplication = site.WebApplication;
// webApplication.WebConfigModifications.Clear();
// do modifications, using the feature.GetType().FullName as the Owner
webApplication.Update();
webApplication.Farm.Services.GetValue<SPWebService>().ApplyWebConfigModifications();
}
}
public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
{
using (SPSite site = ((SPSite)properties.Feature.Parent))
{
SPWebApplication webApplication = site.WebApplication;
Collection<SPWebConfigModification> entries = webApplication.WebConfigModifications;
for (int i = entries.Count - 1; i >= 0; i--)
{
SPWebConfigModification entry = entries[i];
if (entry.Owner == this.GetType().FullName)
entries.Remove(entry);
}
webApplication.Update();
webApplication.Farm.Services.GetValue<SPWebService>().ApplyWebConfigModifications();
}
}
Редактировать
Чтобы управлять текущими изменениями, не заходя непосредственно в SQL Server, используйте этот файл и скопируйте его в папку:
C: \ Program Files \ Common Files \ Microsoft Shared \ расширения веб-сервера \ 12 \ TEMPLATE \ ADMIN и доступ к нему из http://centraladministration:PORT/_admin/webconfig.aspx
Оригинальные источники Блог TheKid и Блог Хармджана Гревинга