启动停止IIS应用程序池

时间:2018-04-05 09:33:45

标签: c# iis restart recycle

我找到了这段代码:

using System.DirectoryServices;

...

void Recycle(string appPool)
{
    string appPoolPath = "IIS://servername/W3SVC/AppPools/" + appPool;

    using (DirectoryEntry appPoolEntry = new DirectoryEntry(appPoolPath))
    {
        appPoolEntry.Invoke("Recycle", null);
        appPoolEntry.Close();
    }
}

但是当我尝试使用此代码时出现此错误:

  

调用目标抛出了异常.StackTrace:at System.DirectoryServices.DirectoryEntry.Invoke(String methodName,Object [] args)

我做错了什么? 或者如何获取有关我的应用程序池状态的信息,以及如何在没有任何特殊权限的情况下启动和停止我的应用程序池?

我正在使用内置帐户:NetworkService

1 个答案:

答案 0 :(得分:0)

尝试使用Microsoft.Web.Administration.ServerManager和Microsoft.Web.Administration.ApplicationPool类。

示例:

        var serverManager = new ServerManager();
        var appPool = serverManager.ApplicationPools.FirstOrDefault(ap => ap.Name.Equals("AppPoolName"));
        appPool.Start();