2008-11-19 6 views
4

... ou suis-je en train de rouler mes propres fonctions "XML hachage". Je voudrais créer une petite application de la barre des tâches afin que je puisse rapidement rediriger un répertoire virtuel vers l'un des nombreux dossiers sur mon disque dur.Existe-t-il une bibliothèque ou une API .NET pour interagir avec/modifier la métabase IIS?

Bit de fond:

J'ai 3 différentes branches svn de notre base de code sur ma machine dev.

Current Production Branch (C:\Projects\....\branches\Prod\) 
Next Release Canidate Branch (C:\Projects\....\branches\RCX\) 
Trunk      (C:\Projects\....\trunk\) 

Notre application intègre à une 3ème partie CMS que je l'ai installé à

http://localhost/cms/ 

Pour travailler notre application doit vivre dans le même répertoire racine. si:

http://localhost/app/ 

Selon la branche, je travaille, je suis re pointant vers le répertoire /app/ à l'un des 3 chemins répertoriés ci-dessus en allant dans Gestionnaire des services Internet. Je pensais juste qu'il serait pratique d'avoir une application rapide pour le faire pour moi.

Répondre

3

Ok ... ce n'est pas une application de plateau, mais vous pouvez l'exécuter à partir de la ligne de commande. Il suffit de changer les chemins physiques nécessaires:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.DirectoryServices; 

namespace Swapper 
{ 
    class Program 
    { 
    static void Main(string[] args) 
    { 
     using (DirectoryEntry appRoot = 
       new DirectoryEntry("IIS://Localhost/W3SVC/1/root/app")) 
     { 
     switch (args[0].ToLower()) 
     { 
      case "prod": 
      appRoot.Properties["Path"].Value = @"e:\app\prod"; 
      appRoot.CommitChanges(); 
      break; 

      case "rcx": 
      appRoot.Properties["Path"].Value = @"e:\app\rcx"; 
      appRoot.CommitChanges(); 
      break; 

      case "trunk": 
      appRoot.Properties["Path"].Value = @"e:\app\trunk"; 
      appRoot.CommitChanges(); 
      break; 

      default: 
      Console.WriteLine("Don't know"); 
      break; 
     } 
     } 
    } 
    } 
} 

Lancez ensuite comme dans:

C:\>swapper prod 
C:\>swapper rcx 

etc

+0

Kudos Kevin, devrait être assez facile pirater cela dans une petite application de plateau de tâches que j'ai déjà. Très appréciée. –

1

Je ne l'ai pas utilisé moi-même, donc je ne suis pas sûr à 100% que cela résoudra votre problème. Mais jetez un oeil à System.DirectoryServices dans .NET. Il peut accéder à IIS.

MSDN help for DirectoryServices