【发布时间】:2011-09-20 18:18:20
【问题描述】:
我必须使用 c# 以编程方式回收 IIS(7.5 版)应用程序池。当我尝试使用引发的“ServerManager”类 UnauthorizedAccessException 获取 ApplicationPoolCollection 时。 我想我必须使用模拟。但我不知道使用模拟。并且无论如何使用带有属性而不是 web.config 的模拟?
【问题讨论】:
标签: iis-7.5 impersonation recycle
我必须使用 c# 以编程方式回收 IIS(7.5 版)应用程序池。当我尝试使用引发的“ServerManager”类 UnauthorizedAccessException 获取 ApplicationPoolCollection 时。 我想我必须使用模拟。但我不知道使用模拟。并且无论如何使用带有属性而不是 web.config 的模拟?
【问题讨论】:
标签: iis-7.5 impersonation recycle
要在 IIS 中执行任何管理操作,例如回收应用程序池、启动和停止站点、创建网站等,您需要以管理员身份运行。
如果您想以编程方式模拟用户,则需要使用WindowsIdentity.Impersonate 方法。
那里有相当不错的示例代码 sn-p 可以帮助您入门。
当然,在将高特权用户的凭据存储在您的 web.config 文件(或硬编码)中时,所有常见的警告都适用于此。
此外,如果您尝试使用托管的ServerManager API 以编程方式访问 IIS 的代码进行调试,请确保您通过执行“以管理员身份运行”来启动 Visual Studio。即使您自己的 Windows 帐户是管理员组的成员,您也需要这样做。
【讨论】: