0
我必须使用c#以编程方式回收IIS(版本7.5)应用程序池。当我尝试使用“ServerManager”类UnauthorizedAccessException引发ApplicationPoolCollection时引发。 我想我必须使用模拟。但我不知道使用模拟。无论如何,使用模拟属性而不是web.config?IIS应用程序池回收
我必须使用c#以编程方式回收IIS(版本7.5)应用程序池。当我尝试使用“ServerManager”类UnauthorizedAccessException引发ApplicationPoolCollection时引发。 我想我必须使用模拟。但我不知道使用模拟。无论如何,使用模拟属性而不是web.config?IIS应用程序池回收
要在IIS中执行任何管理操作(如回收应用程序池,启动和停止站点,创建网站等),您需要以管理员身份运行。
如果要以编程方式模拟用户,则需要使用WindowsIdentity.Impersonate
方法。
这里有一个相当不错的示例代码片段让你开始。
当然,在web.config
文件(或硬编码)文件中为高权限用户存储凭证时,所有通常的注意事项都适用于此。
另外,如果您尝试使用托管的ServerManager
API以编程方式访问IIS,请确保通过执行“以管理员身份运行”来启动Visual Studio。即使您自己的Windows帐户是Administrators组的成员,也需要执行此操作。