Se si utilizza IIS 7, v'è una nuova API gestita denominata Microsoft.Web.Administration
Un esempio dal post del blog di cui sopra:
ServerManager iisManager = new ServerManager();
iisManager.Sites.Add("NewSite", "http", "*:8080:", "d:\\MySite");
iisManager.CommitChanges();
Se si utilizza IIS 6 e si desidera eseguire questa operazione, purtroppo è più complesso.
Sarà necessario creare un servizio Web su ogni server, un servizio Web che gestisce la creazione di un sito Web perché la rappresentazione diretta dell'utente in rete non funzionerà correttamente (Se ricordo correttamente).
Si dovrà utilizzare interoperabilità Servizi e fare qualcosa di simile a questo (Questo esempio utilizza due oggetti, di server e il sito, che sono istanze di classi personalizzate che contengono una configurazione del sito del server e):
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;
Tutte le here
Cosa IIS versione stai usando? – kitsune
Stiamo utilizzando IIS 6 –
per specificare la porta durante l'installazione o si desidera aggiungere il sito Web a IIS in base al codice? –