2012-05-24 5 views
3

Как сбросить недействительные SPWebConfigModifications?Как очистить недействительные SPWebConfigModifications

Я попытался выполнить некоторые недействительные изменения как часть решения, и теперь я не могу избавиться от них, каждый раз, когда я запускаю ApplicationWebConfigModifications, он пытается выполнить недействительные изменения.

Как удалить их из системы?

ответ

3

Для дальнейшего использования (после того, как стучал головой о стену в течение 3-х дней):

Вы можете использовать этот инструмент:

http://ianankers.wordpress.com/2011/07/14/web-config-modification-manager-for-sharepoint-2010/

Это будет список всех модов для каждого WebApp, установленного в ваша ферма, вы можете добавить новые и удалить старые.

Инструмент будет только список изменения на уровне WebAPP, если вы установили моды на уровне фермы необходимо запустить сценарий как:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using Microsoft.SharePoint; 
using Microsoft.SharePoint.Navigation; 
using Microsoft.SharePoint.Administration; 

namespace ModTool 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 

      SPSite site = new SPSite(args[0]); 
      SPWebService service = site.WebApplication.Farm.Services.GetValue<SPWebService>(); 


      if (args.Length == 1 || string.IsNullOrEmpty(args[1])) 
      { 
       Console.Out.WriteLine("Listing all Mods and Owners"); 
       foreach (SPWebConfigModification mod in service.WebConfigModifications) 
       { 
        Console.Out.WriteLine("Mod:" + mod.Name + ", Owner:" + mod.Owner); 
       } 
      } 
      else 
      { 
       Console.Out.WriteLine("Removing all mods owner:" + args[1] + ", reference site:" + args[0]); 

       List<SPWebConfigModification> toDelete = new List<SPWebConfigModification>(); 

       foreach (SPWebConfigModification mod in service.WebConfigModifications) 
       { 
        if (mod.Owner == args[1]) 
        { 
         toDelete.Add(mod); 
        } 
       } 

       Console.Out.WriteLine("Found " + toDelete.Count + "Mods"); 



       foreach (SPWebConfigModification mod in toDelete) 
       { 
        service.WebConfigModifications.Remove(mod); 
       } 
       service.Update(); 
       SPWebService.ContentService.ApplyWebConfigModifications(); 
       Console.Out.WriteLine("Done!!"); 
      } 
     } 
    } 
} 

Использование:

ModTool http://site - List all the mods for the farm, site is just an entry point 
ModTool http://site owner -Deletes all the mods for the far wich owner is "owner" 
Смежные вопросы