Esiste una libreria o API .NET per interagire con / modificare la metabase IIS?
Domanda
... o sono bloccato a girare il mio "quotazione XML" " funzioni. Vorrei creare una piccola app per Tasktray in modo da poter reindirizzare rapidamente una Directory Virual in una delle numerose cartelle sul mio disco fisso.
Bit di sfondo:
Ho 3 diversi rami svn della nostra base di codice sulla mia macchina di sviluppo.
Current Production Branch ( C:\Projects\....\branches\Prod\ )
Next Release Canidate Branch ( C:\Projects\....\branches\RCX\ )
Trunk ( C:\Projects\....\trunk\ )
La nostra app si integra con un CMS di terze parti che ho installato su
http://localhost/cms/
Per funzionare, la nostra app deve vivere nella stessa directory principale. così:
http://localhost/app/
A seconda del ramo su cui sto lavorando, sto puntando nuovamente la directory / app /
su uno dei 3 percorsi sopra elencati andando in Gestione IIS. Ho pensato che sarebbe stato utile avere un'app veloce per farlo per me.
Soluzione
Ok ... questa non è un'app della barra delle applicazioni ma puoi eseguirla dalla riga di comando. Basta cambiare i percorsi fisici secondo necessità:
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;
}
}
}
}
}
Quindi esegui come in:
C:\>swapper prod
C:\>swapper rcx
etc
Altri suggerimenti
Non l'ho usato da solo, quindi non sono sicuro al 100% che risolverà il tuo problema. Dai un'occhiata a System.DirectoryServices in .NET. Può accedere a IIS.
Bene, per IIS 7, esiste un wrapper .NET per abilitare la gestione IIS tramite .NET. Vedi questo link per i dettagli,
http://learn.iis.net/ Page.aspx / 165 / how-to-use-microsoftwebadministration /
Per la versione precedente di IIS (5 o 6), sono fornite interfacce ADSI e WMI,