启动停止 IIS 应用程序池
Posted
技术标签:
【中文标题】启动停止 IIS 应用程序池【英文标题】:Start Stop IIS Application Pool 【发布时间】:2018-09-15 01:45:30 【问题描述】:我找到了这段代码:
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】:尝试使用 Microsoft.Web.Administration.ServerManager 和 Microsoft.Web.Administration.ApplicationPool 类。
例子:
var serverManager = new ServerManager();
var appPool = serverManager.ApplicationPools.FirstOrDefault(ap => ap.Name.Equals("AppPoolName"));
appPool.Start();
【讨论】:
我有“权限不足”,我需要什么权限?以及如何添加它? 消息:文件名:redirection.config 错误:由于权限不足,无法读取配置文件,StackTrace:在 Microsoft.Web.Administration.Interop.AppHostWritableAdminManager.GetAdminSection(String bstrSectionName, String bstrSectionPath) 在 [. ..]Microsoft.Web.Administration.Lazy.Initialize[T](T& target, CreateInstanceDelegate`1 valueFactory) 的 Microsoft.Web.Administration.ServerManager.ApplicationPoolCollectionCreator() 在 Microsoft.Web.Administration.ServerManager.get_ApplicationPools()跨度> 请尝试this解决方案。 虽然建议MWA是正确的方式,但您也应该指出,这需要管理员权限,而NetworkService不合格。以上是关于启动停止 IIS 应用程序池的主要内容,如果未能解决你的问题,请参考以下文章
windows 7 sp1 版本下的IIS应用程序池总是自动停止?