Ich muss einen virtuellen Verzeichnis- und Anwendungspool von .NET als Teil meiner Deinstallationsmethode löschen. Ich fand den folgenden Code auf dem Netz irgendwo:Wie kann ich IIS-Objekte aus C# löschen?
private static void DeleteTree(string metabasePath)
{
// metabasePath is of the form "IIS://<servername>/<path>"
// for example "IIS://localhost/W3SVC/1/Root/MyVDir"
// or "IIS://localhost/W3SVC/AppPools/MyAppPool"
Console.WriteLine("Deleting {0}:", metabasePath);
try
{
DirectoryEntry tree = new DirectoryEntry(metabasePath);
tree.DeleteTree();
tree.CommitChanges();
Console.WriteLine("Done.");
}
catch (DirectoryNotFoundException)
{
Console.WriteLine("Not found.");
}
}
aber es scheint ein COMException
auf tree.CommitChanges();
zu werfen. Brauche ich diese Linie? Ist es ein richtiger Ansatz?
Können Sie die vollständige COMException einfügen? – Kev
Sie sollten wirklich den Windows-Installer verwenden, um diese Art von Dingen zu tun. Wix verfügt über integrierte Funktionen zum automatischen Erstellen und Entfernen von IIS-Objekten. –
@Jesse - Mit Wix können Sie Benutzer zu einem neuen App-Pool/Website/vdir auffordern, anstatt vorhandene zu wählen (das VS Web Setup-Projekt lässt Sie nur vorhandene IIS-Objekte auswählen)? – Kev