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