C# 如何通过控制台应用程序在Windows 2008 Server Web SP2上的IIS7中设置站点?

C# 如何通过控制台应用程序在Windows 2008 Server Web SP2上的IIS7中设置站点?,c#,iis-7,C#,Iis 7,我有一个在WindowsServer2003上使用的程序,它在IIS6中建立了一个站点,我过去使用过,没有任何问题 我试图用Windows2008ServerWebSP2做同样的事情,但我得到了一个错误。我猜这与用户帐户的安全性有关。如果这是正确的,有什么办法可以解决这个问题吗?谢谢 System.Runtime.InteropServices.COMException (0x80070005): Access is denied. at System.DirectoryServices.Di

我有一个在WindowsServer2003上使用的程序,它在IIS6中建立了一个站点,我过去使用过,没有任何问题

我试图用Windows2008ServerWebSP2做同样的事情,但我得到了一个错误。我猜这与用户帐户的安全性有关。如果这是正确的,有什么办法可以解决这个问题吗?谢谢

System.Runtime.InteropServices.COMException (0x80070005): 
Access is denied. at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
编辑:

我发现Microsoft提供了一个程序集,
Microsoft.Web.Administration
,使我的任务更容易使用IIS7。但是,我在运行应用程序时遇到了一个错误。报告的错误显示:

“指定的HTTPS绑定无效”

我没有指定https绑定,所以我不确定为什么会收到错误消息。这是密码

using Microsoft.Web.Administration;
....
using (ServerManager iisManager = new ServerManager())
{
  iisManager.Sites.Add(site.Name.ToString(), "http", "*:80:" + domain, 
                          server.InetPath + site.Name);
  iisManager.CommitChanges();
  Site newSite = iisManager.Sites[site.Name];
  newSite.Applications[0].ApplicationPoolName = "TrialUsers";
  iisManager.CommitChanges();
}

此外,此任务必须更新web场中的多个服务器。有人知道如何修改代码以实现此目的吗?

要使用Microsoft.Web.AdministrationAPI在远程服务器上创建和操作IIS,可以使用此方法

但是,我觉得您可能需要在具有远程服务器上的正确权限的Active Directory用户的上下文中运行此操作,因为无法为远程服务器提供凭据

iisManager.Sites.Add(site.Name.ToString(), "http:", "*:80:" + domain, 
                     server.InetPath + site.Name);

删除域,如果你和我一样,你没有在端口后添加第二个“:”

顺便说一句,第一次CommitChanges调用发生异常。不过,我知道我做错了什么。在我前面的代码中使用的域变量中,我有完整的http://这是不允许的。我把它去掉了,效果很好。我仍然不知道如何在多个服务器上工作,不过如果有人有想法的话。谢谢。这不属于ServerFault,这是一个关于使用MWA API以编程方式配置IIS的问题。谢谢,我将尝试一下。我已经为该程序设置了模拟,并且读到我需要为该用户授予对windows\system32\inetsrv\config目录的权限。我正在以该计算机上的本地管理员的身份进行连接,该管理员对这些文件具有读/写访问权限,但仍然会出现未经授权的访问错误。有人知道我还需要做什么吗?谢谢