Можно ли автоматизировать создание веб-приложения .NET в IIS? - PullRequest
5 голосов
/ 24 ноября 2008

Мне нужно развернуть веб-приложение на нескольких ноутбуках (хотя это веб-приложение, оно предназначено для запуска только через localhost - следовательно, необходимо развернуть на нескольких разных машинах).

Обычно я бы пошел в IIS и щелкнул правой кнопкой мыши по каталогу для создания веб-приложения, но я бы очень хотел автоматизировать этот этап установки. Можно ли это сделать?

редактировать: Мой вопрос, очевидно, не очень ясен.

Я хочу использовать IIS, но хочу автоматически создать веб-приложение, не открывая IIS Microsoft Management Console (MMC).

Ответы [ 9 ]

7 голосов
/ 24 ноября 2008

Я могу предложить вам посмотреть по этой ссылке , если вы развертываете на IIS6 или на этой , если это IIS7 (я мог бы порекомендовать блог Майка Володарского для любой информации по IIS7 в целом). Для вас должно быть довольно просто написать какой-нибудь пакетный файл для автоматизации создания сайта. Пример:

  • IIS6: iisweb / create C: \ Rome «Мои каникулы» / d www.reskit.com / dontstart
  • IIS7:% windir% \ system32 \ inetsrv \ AppCmd ​​ДОБАВИТЬ САЙТ / имя: MyNewSite / привязки: http / *: 81: / PhysicalPath: C: \ inetpub \ mynewsite
4 голосов
/ 24 ноября 2008

Вы действительно задаете два разных вопроса. Во-первых, зачем изобретать велосипед? По всей вероятности, ноутбуки уже способны работать с IIS - он доступен во всех «современных» версиях Windows, за исключением, возможно, Vista Home. Во-вторых, установщик VS.NET может легко настроить и автоматизировать установку в IIS. Если вы используете Wix или какой-либо другой сторонний установщик, это потребует больше ручной работы, но все еще может быть выполнено.

Изменить: Перечитывая свой вопрос, это звучит так, как будто вы действительно спрашиваете - вы уже знали, что IIS был доступен на целевых компьютерах, но просто не хотели устанавливать его вручную на каждом компьютере. Правильный? В этом случае обязательно посмотрите на проект установки VS.NET - у них есть встроенная цель для развертывания IIS.

2 голосов
/ 24 ноября 2008

Вы можете использовать класс system.DirectoryServices, например:

http://www.gafvert.info/iis/article/cs_create_website_iis6.htm

2 голосов
/ 24 ноября 2008

Вы можете заглянуть внутрь Образца веб-сервера Cassini (поставляется с источником):

Пример веб-сервера ASP.NET Cassini - это пример веб-сервера, написанный с использованием Microsoft® .NET® Framework, который демонстрирует хостинг ASP.NET с помощью API-интерфейсов хостинга ASP.NET (System.Web.Hosting).

1 голос
/ 24 ноября 2008

Вы можете создать виртуальный каталог, не используя консоль MMC, с помощью задачи WebDirectoryCreate, доступной внутри проекта msbuildtasks

1 голос
/ 24 ноября 2008

Создайте новый проект Visual Studio типа «Настройка и развертывание» и используйте тип «Веб-настройка».

Это создаст установщик MSI, который автоматически создаст для вас веб-приложение в IIS.

Затем вы также получите возможность выполнять сетевую установку, поэтому, если у вас есть необходимые разрешения, вы можете управлять этим централизованно.

1 голос
/ 24 ноября 2008

Вы также можете попробовать Mono http://mono -project.com /

Это для Linux, Mac OS X и Windows.

У них есть xsp веб-сервер для приложений .net.

Документация об этом есть в

http://www.mono -project.com / ASP.NET

Удачи,

1 голос
/ 24 ноября 2008

Для реализации минимального веб-сервера вы можете использовать HTTP.SYS (основной компонент IIS, развернутый с Windows XP SP2 или выше). В .NET это можно сделать, например, с помощью класса HttpListener в пространстве имен System.Net.

С уважением, Тамберг

0 голосов
/ 24 ноября 2008

Посмотрите на этот пост. В нем объясняется, как запустить веб-сервер Cassini из командной строки и добавить его в качестве расширения оболочки.

EDIT: В блоге CarlosAg есть отличные сообщения о администрации IIS, бросающей PowerShell и управляемого кода .

...