Как программно добавить веб-сайт (C #) в IIS 6.0? - PullRequest
4 голосов
/ 18 июня 2009

У нас есть веб-приложение, которое до сих пор установлено в разделе «Веб-сайт по умолчанию» в IIS. Теперь клиент хочет, чтобы мы установили его на другом веб-сайте, и мы хотим сделать это с помощью установщика. Мой вопрос состоит из 2 частей: A) Как программно добавить другой веб-сайт рядом с «веб-сайтом по умолчанию»? Б) Мы используем установщик Windows - есть ли способ запустить любой код, который я пишу для раздела А, из установщика вовремя, чтобы установка прошла в новом месте? Похоже, переопределение Install () слишком поздно в игре ...

Ответы [ 4 ]

3 голосов
/ 18 июня 2009

мы используем скрипт windows js для обновления наших виртуальных каталогов между филиалами, я думаю, что вы можете использовать те же объекты для создания веб-сайта

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

Microsoft имеет довольно обширную статью о программной настройке IIS 6. Пока ваш MSI может вызывать командный файл, эта статья должна помочь.

Эта статья также содержит полный файл сценария, который создает веб-сайт.

2 голосов
/ 30 августа 2011

Вот код C # для программного создания сайта:

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   }

ссылка: http://www.it -notebook.org / iis / article / cs_create_website_iis6.htm

1 голос
/ 18 июня 2009

Если вы используете WiX для создания MSI, см. этот вопрос .

0 голосов
/ 18 июня 2009

Не совсем специалист по файлам MSI, но вы можете добавить веб-сайт с помощью сценариев, используя adsutil.vbs. Бедный способ справиться с этим - попросить установщика удалить файлы в определенном месте, не создавая веб-сайт, а затем запустить более поздний шаг со сценарием, чтобы создать веб-сайт с корневым каталогом в этом месте. Бонусные баллы за то, что вы сделали это необязательным для таких непритязательных администраторов IIS, как я, которые ненавидят установщиков, которые вообще касаются IIS.

...