Si está utilizando IIS 7, hay una nueva llamada API administrada Microsoft.Web.Administration
Un ejemplo de la entrada de blog anterior:
ServerManager iisManager = new ServerManager();
iisManager.Sites.Add("NewSite", "http", "*:8080:", "d:\\MySite");
iisManager.CommitChanges();
Si está utilizando IIS 6 y quiere hacer esto, lamentablemente es más complejo.
Deberá crear un servicio web en cada servidor, un servicio web que maneja la creación de un sitio web porque la suplantación directa del usuario a través de la red no funcionará correctamente (si recuerdo esto correctamente).
Usted tendrá que utilizar servicios de interoperabilidad y hacer algo similar a esto (Este ejemplo utiliza dos objetos, el servidor y el sitio, que son instancias de clases personalizadas que almacenan una configuración de sitio del servidor y):
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;
ver más here
Lo IIS versión está utilizando? – kitsune
Estamos utilizando IIS 6 –
¿desea especificar el puerto durante la configuración o desea agregar el sitio web a IIS por código? –