Ich wurde beauftragt, einen Weg zu finden, einen Anwendungspool von einer Webseite neu zu starten. Der IIS wird von unserer eigenen IT-Abteilung gehostet, daher werden bei Bedarf erforderliche Sicherheitseinstellungen geändert.Wie man Microsoft.Web.Administration richtig benutzt, um einen Anwendungspool von einer Webseite zu starten?
ich Microsoft.Web.Administration.dll bin mit und versuchen, dies für meine lokale IIS (7.5):
ServerManager serverManager = new ServerManager();
ApplicationPoolCollection applicationPoolCollection = serverManager.ApplicationPools;
foreach (ApplicationPool applicationPool in applicationPoolCollection)
{
appPoolNames.Add(applicationPool.Name);
// If the applicationPool is stopped, restart it.
if (applicationPool.State == ObjectState.Stopped)
{
applicationPool.Start();
}
}
// CommitChanges to persist the changes to the ApplicationHost.config.
serverManager.CommitChanges();
Wenn ich diese Logik in einem winform setzen und als lokale admin, meine app-Pool laufen in lokaler IIS wird gestartet. Wenn ich jedoch die gleiche Logik in einer Webseite setzen, schlägt es mit dem Fehler in dieser Zeile mit dem Fehler:
if (applicationPool.State == ObjectState.Stopped)
Exception: System.ComponentModel.Win32Exception: Access is denied
Ich denke, das für die Sicherheit zurückzuführen ist, aber ich bereits einem lokalen Admin-Benutzer auf meinen app-Pool geben. Gibt es einen Weg, dies auf einer Webseite zu erreichen?