Existe-t-il une bibliothèque ou une API .NET pour interagir avec / modifier la métabase IIS?

StackOverflow https://stackoverflow.com/questions/301438

  •  08-07-2019
  •  | 
  •  

Question

... ou suis-je bloqué à lancer mon propre "découpage XML"? les fonctions. J'aimerais créer une petite application Tasktray afin de pouvoir rapidement re-pointer un répertoire virtuel sur l'un des plusieurs dossiers de mon disque dur.

Bit d'arrière-plan:

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

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

Notre application s'intègre à un CMS tiers que j'ai installé à

.
http://localhost/cms/

Pour fonctionner, notre application doit résider dans le même répertoire racine. alors:

http://localhost/app/

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

Était-ce utile?

La solution

D'accord ... ce n'est pas une application de plateau, mais vous pouvez l'exécuter à partir de la ligne de commande. Changez simplement les chemins physiques si nécessaire:

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;
        }
      }
    }
  }
}

Puis lancez comme dans:

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

etc

Autres conseils

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.

aide MSDN pour DirectoryServices

Eh bien, pour IIS 7, il existe un wrapper .NET pour activer la gestion IIS via .NET. Voir ce lien pour plus de détails,

http://learn.iis.net/ page.aspx / 165 / comment-utiliser-microsoftwebadministration /

Pour les versions précédentes d'IIS (5 ou 6), les interfaces ADSI et WMI sont fournies,

http://msdn.microsoft.com/en-us/library /ms525885.aspx

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top