0

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

4

1 回答 1

0

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

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

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

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

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

于 2011-06-23T21:32:17.940 回答