2009-06-18 8 views
4

Nous avons une application Web qui était jusqu'à présent installée sous le "Site Web par défaut" dans IIS. Un client veut maintenant que nous l'installions sous un site Web différent, et nous voulons le faire à partir de l'installateur. Ma question est en 2 parties: A) Comment est-ce que j'ajoute par programme un autre site Web à côté du 'site web par défaut'? B) Nous utilisons Windows Installer - existe-t-il un moyen de déclencher le code que j'écris pour la section A à partir de l'installateur à temps pour que l'installation ait lieu au nouvel emplacement? Il semble que l'inversion de Install() soit trop tardive dans le jeu ...Comment ajouter par programme un site Web (C#) à IIS 6.0?

Répondre

3

nous utilisons un script Windows js pour mettre à jour nos répertoires virtuels entre les branches, j'imagine que vous pouvez utiliser les mêmes objets pour créer un site Web

var iisPath = "IIS://localhost/W3SVC/" + siteID; 
var site = GetObject(iisPath); 

Microsoft a une fairly extensive article sur la configuration IIS 6 programatically. Tant que votre MSI peut appeler un fichier batch, cet article devrait vous aider.

This article a également un fichier de script complet qui crée un site Web.

+0

I suppose que j'ai supposé que le site Web était C# pas le programme demandé. Cependant, il n'y a aucune raison pour que ces objets ne puissent pas être utilisés en C#. –

1

Si vous utilisez WiX pour créer votre MSI, voyez this question.

+0

Non, pas WiX ici, juste de base Windows Installer (. Oh, la joie ... pas) –

0

Pas vraiment un expert dans les fichiers MSI, mais vous pouvez ajouter un site Web à l'aide de scripts utilisant adsutil.vbs. La manière de l'homme pauvre de manipuler ceci est d'avoir votre installateur déposez les dossiers à un emplacement sans créer un site Web alors courez une étape plus tard avec le manuscrit pour créer un site Web avec la racine à cet endroit. Des points bonus pour rendre cette option optionnelle pour les administrateurs IIS nus comme moi qui détestent les installateurs touchant IIS.

2

est ici un code C# pour programme la création d'un site:

1 using System.DirectoryServices; 
2 using System; 
3  
4 public class IISAdmin 
5 { 
6  public static int CreateWebsite(string webserver, string serverComment, string serverBindings, string homeDirectory) 
7  { 
8   DirectoryEntry w3svc = new DirectoryEntry("IIS://localhost/w3svc"); 
9   
10   //Create a website object array 
11   object[] newsite = new object[]{serverComment, new object[]{serverBindings}, homeDirectory}; 
12   
13   //invoke IIsWebService.CreateNewSite 
14   object websiteId = (object)w3svc.Invoke("CreateNewSite", newsite); 
15   
16   return (int)websiteId; 
17  
18  } 
19 
20  public static void Main(string[] args) 
21  { 
22   int a = CreateWebsite("localhost", "Testing.com", ":80:Testing.com", "C:\\inetpub\\wwwroot"); 
23   Console.WriteLine("Created website with ID: " + a); 
24  } 
25  
26 } 

Référence: http://www.it-notebook.org/iis/article/cs_create_website_iis6.htm

Questions connexes