如果您使用的是 IIS 7,则有一个新的托管 API,称为微软网络管理 http://blogs.msdn.com/carlosag/archive/2006/04/17/MicrosoftWebAdministration.aspx
上述博客文章中的一个示例:
ServerManager iisManager = new ServerManager();
iisManager.Sites.Add("NewSite", "http", "*:8080:", "d:\\MySite");
iisManager.CommitChanges();
如果您使用的是 IIS 6 并且想要执行此操作,那么不幸的是,它会更加复杂。
您必须在每台服务器上创建一个 Web 服务,这是一个处理网站创建的 Web 服务,因为通过网络直接模拟用户将无法正常工作(如果我没记错的话)。
您将必须使用互操作服务并执行与此类似的操作(此示例使用两个对象,服务器和站点,它们是存储服务器和站点配置的自定义类的实例):
string metabasePath = "IIS://" + server.ComputerName + "/W3SVC";
DirectoryEntry w3svc = new DirectoryEntry(metabasePath, server.Username, server.Password);
string serverBindings = ":80:" + site.HostName;
string homeDirectory = server.WWWRootPath + "\\" + site.FolderName;
object[] newSite = new object[] { site.Name, new object[] { serverBindings }, homeDirectory };
object websiteId = (object)w3svc.Invoke("CreateNewSite", newSite);
// Returns the Website ID from the Metabase
int id = (int)websiteId;
查看更多here http://msdn.microsoft.com/en-us/library/ms524569.aspx