Si vous utilisez IIS 7, il y a une nouvelle API managée appelée Microsoft.Web.Administration
Un exemple du billet de blog ci-dessus:
ServerManager iisManager = new ServerManager();
iisManager.Sites.Add("NewSite", "http", "*:8080:", "d:\\MySite");
iisManager.CommitChanges();
Si vous utilisez IIS 6 et que vous voulez faire cela, c'est plus complexe malheureusement.
Vous devrez créer un service Web sur chaque serveur, un service Web qui gère la création d'un site Web car l'usurpation d'identité directe sur le réseau ne fonctionnera pas correctement (si je me souviens bien).
Vous devrez utiliser Interop Services et faire quelque chose de similaire à ce (Cet exemple utilise deux objets, le serveur et le site, qui sont des instances de classes personnalisées qui stockent de serveur et la configuration du site):
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;
Voir plus here
Quelle IIS version utilisez-vous? – kitsune
Nous utilisons IIS 6 –
vous souhaitez spécifier le port lors de l'installation ou vous voulez ajouter le site Web à IIS par code? –