我的项目差不多完成了,但是我似乎无法让最后一部分工作:
这就是我想做的事情,但是我无法让它发挥作用。到目前为止,我设法将代码拖到一起的代码只返回应用程序池名称的列表:
public static string[] FetchAppPools()
{
List<string> lvAppPools = new List<string>();
DirectoryEntry lvWebService = new DirectoryEntry("IIS://localhost/W3SVC");
IEnumerator ie = lvWebService.Children.GetEnumerator();
DirectoryEntry lvServer = null;
while(ie.MoveNext())
{
lvServer = (DirectoryEntry)ie.Current;
if (lvServer.SchemaClassName == "IIsWebServer")
lvAppPools.Add(lvServer.Properties["ServerComment"][0].ToString());
}
return lvAppPools.ToArray();
}
我如何更改上面的代码以便还原与每个应用程序池相关的目录(C:\ inetpub \ Website1)?
谢谢。
答案 0 :(得分:2)
可以尝试这个
var directoryEntry = new DirectoryEntry(APPLICATION_POOL_URL, USERNAME, PASSWORD);
// call to stop the Application Pool
directoryEntry.Invoke("Stop", null);
// call to start the Application Pool
directoryEntry.Invoke("Start", null);
// call to recycle the Application Pool
directoryEntry.Invoke("Recycle", null);
基本上你必须打电话
directoryEntry.Invoke("Stop/Start/Recycle", null);