Gibt es eine .NET-Bibliothek oder API zur Interaktion mit / Bearbeiten der IIS-Metabasis?
Frage
... oder bin ich meine eigene „XML hacken“ Funktionen stecken rollen. Ich möchte eine kleine Tasktray App erstellen, so kann ich schnell ein Virual Directory zu einem von mehreren Ordnern auf der Festplatte-Punkt wieder.
Bit of Hintergrund:
Ich habe 3 verschiedene svn Zweige unserer Code-Basis auf meiner Dev-Maschine.
Current Production Branch ( C:\Projects\....\branches\Prod\ )
Next Release Canidate Branch ( C:\Projects\....\branches\RCX\ )
Trunk ( C:\Projects\....\trunk\ )
Unser App integriert mit einem 3rd-Party-CMS, die ich bei
installiert habehttp://localhost/cms/
Um unsere App arbeiten muss auf dem gleichen Stammverzeichnis leben. so:
http://localhost/app/
Je nach Filiale arbeite ich an, ich bin wieder zeigt das /app/
Verzeichnis auf einem der drei Pfade oben aufgeführten in IIS-Manager gehen. Ich dachte, es nützlich sein, würde eine schnelle App, um es für mich zu tun.
Lösung
Ok ... das ist kein Fach App aber Sie können es von der Kommandozeile ausgeführt werden. ändern Sie einfach die physischen Pfade wie erforderlich:
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;
}
}
}
}
}
Dann läuft wie in:
C:\>swapper prod
C:\>swapper rcx
etc
Andere Tipps
Ich habe nicht dieses mein Selbst verwendet, also bin ich nicht 100% sicher, dass es Ihr Problem lösen. Aber nehmen Sie einen Blick auf System.DirectoryServices in .NET. Es kann IIS zugreifen zu können.
Nun, für IIS 7 gibt es eine .NET-Wrapper IIS-Management über .NET zu ermöglichen. Siehe diesen Link für weitere Details,
http://learn.iis.net/ page.aspx / 165 / how-to-use-microsoftwebadministration /
Für frühere Version von IIS (5 oder 6), ADSI und WMI-Schnittstellen vorhanden sind,