Ich bin mir nicht sicher über eine Kopiermethode, aber Sie könnten auf die Eigenschaften des aktuellen Anwendungspools zugreifen und dann einen neuen Anwendungspool mit denselben Eigenschaften erstellen:
// Wie man auf einen bestimmten Anwendungspool zugreift
DirectoryEntry appPools = new DirectoryEntry("IIS://" + serverName + "/w3svc/apppools", adminUsername, adminPassword);
foreach (DirectoryEntry AppPool in appPools.Children)
{
if (appPoolName.Equals(AppPool.Name, StringComparison.OrdinalIgnoreCase))
{
// auf die Eigenschaften von AppPool zugreifen...
}
}
Dann erstellen Sie einen neuen Pool in Ihrem Code, indem Sie die unten aufgeführte Methode aufrufen:
CreateAppPool("IIS://Localhost/W3SVC/AppPools", "MyAppPool");
Anwendungspool-Erstellungsmethode von MSDN:
static void CreateAppPool(string metabasePath, string appPoolName)
{
// metabasePath hat die Form "IIS:///W3SVC/AppPools"
// zum Beispiel "IIS://localhost/W3SVC/AppPools"
// appPoolName hat die Form "", zum Beispiel "MyAppPool"
Console.WriteLine("\nErstelle Anwendungspool namens {0}/{1}:", metabasePath, appPoolName);
try
{
if (metabasePath.EndsWith("/W3SVC/AppPools"))
{
DirectoryEntry apppools = new DirectoryEntry(metabasePath);
DirectoryEntry newpool = apppools.Children.Add(appPoolName, "IIsApplicationPool");
newpool.CommitChanges();
}
else
{
Console.WriteLine(" Fehler bei CreateAppPool; Anwendungspools können nur im */W3SVC/AppPools-Knoten erstellt werden.");
}
}
catch (Exception ex)
{
Console.WriteLine("Fehler bei CreateAppPool mit folgender Ausnahme: \n{0}", ex.Message);
}
}