IIS应用程序池回收

时间:2011-06-22 21:20:17

标签: iis-7.5 impersonation recycle

我必须使用c#以编程方式回收IIS(版本7.5)应用程序池。当我尝试使用“ServerManager”类获取ApplicationPoolCollection时,会引发UnauthorizedAccessException。 我想我必须使用模仿。但我不知道使用假冒。无论如何使用模拟而不是web.config?

1 个答案:

答案 0 :(得分:0)

要在IIS中执行任何管理操作,例如回收应用程序池,启动和停止站点,创建网站等,您需要以管理员身份运行。

如果您想以编程方式模拟用户,则需要使用WindowsIdentity.Impersonate方法。

有一个相当不错的示例代码片段可以帮助您入门。

当然,在web.config文件(或硬编码)中为高权限用户存储凭据时,所有常见的警告都适用于此。

此外,如果您尝试调试使用托管ServerManager API以编程方式访问IIS的代码,请确保通过执行“以管理员身份运行”来启动Visual Studio。即使您自己的Windows帐户是Administrators组的成员,也需要执行此操作。