Skip to main content
 首页 » 编程设计

c#之使用模拟(使用 Microsoft.Web.Administration)自动创建 IIS7 网站

2024年02月23日32jyk

我正在尝试使用此代码(来自同一服务器上的另一个站点)在 IIS 中创建一个网站

using Microsoft.Web.Administration; 
//... 
ServerManager manager = new ServerManager(); 
manager.Sites.Add(Host, "http", ":80:" + Host, Path); 
//... 

但是我得到了这个异常(exception):

消息:文件名:redirection.config 错误:由于权限不足,无法读取配置文件

我试过这样的模拟:http://www.codeproject.com/KB/cs/zetaimpersonator.aspx 但随后我收到了一个丑陋的 COM 错误。

模拟正确用户或指定运行管理器的用户的最佳方式是什么。

请您参考如下方法:

为了使用ServerManager API 你需要是被管理的机器上的本地管理员。当您的代码在 IIS 应用程序的上下文中运行时,您需要将此应用程序的应用程序池身份更改为管理用户(IIS 7.x 上的默认身份是 ApplicationPoolIdentity,这是一个非特权用户)。

或者,您可以通过将这些元素添加到 <system.web> 来启用 ASP.NET 模拟Web.config 中的部分:

<authentication mode="Windows" /> 
<identity impersonate="true" /> 

...并通过启用 Windows Authentication对于 IIS 应用程序。但通常不建议这样做(参见:http://www.hanselman.com/blog/AvoidUsingImpersonationInASPNET.aspx)。