2012-05-24 1 views
3

Comment puis-je supprimer les modifications non valides de SPWebConfigModifications?Comment vider les modifications non valides de SPWebConfigModifications

J'ai essayé d'exécuter des modifications non valides dans le cadre d'une solution et maintenant je ne peux pas m'en débarrasser, chaque fois que j'applique ApplyWebConfigModifications il essaye d'exécuter les modifications invalides.

Comment les rincer du système?

Répondre

3

Pour référence ultérieure (après avoir frappé la tête sur le mur pendant 3 jours):

Vous pouvez utiliser cet outil:

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

Il liste tous les mods pour chaque WebApp installé dans votre ferme, vous pouvez en ajouter de nouveaux et en retirer d'anciens.

L'outil que des modifications de la liste au niveau webapp, si vous avez installé mods au niveau de l'exploitation que vous avez besoin d'exécuter un script comme:

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!!"); 
      } 
     } 
    } 
} 

Utilisation:

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"