正在基于目录重新启动IIS应用程序池
本文关键字:应用 应用程序 程序池 IIS 重新启动 于目录 | 更新日期: 2023-09-27 18:20:24
我的项目几乎完成了,但我似乎无法让最后一部分工作:
- 获取服务器上的所有应用程序池
- 循环浏览应用程序池的所有目录,直到找到匹配的目录
- 重新启动匹配的应用程序池
这就是我想做的全部,但我无法让它发挥作用。到目前为止,我已经设法将代码拖到一起,只返回应用程序池名称的列表:
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)关联的目录带回来?
谢谢。
可以试试这个
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);