2011-06-22 210 views
0

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

回答

0

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

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

这里有一个相当不错的示例代码片段让你开始。

当然,在web.config文件(或硬编码)文件中为高权限用户存储凭证时,所有通常的注意事项都适用于此。

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