Развертывание ASP.NET MVC в форме дистрибутива - PullRequest
8 голосов
/ 26 апреля 2011

У меня есть приложение ASP.NET MVC.И мне нужен способ его развертывания.

НО

Мне не нужно просто копировать его на свой собственный веб-сервер.Это не веб-сайт, который доступен в Интернете.Нет.

Вместо этого Мне нужно, чтобы мои пользователи могли установить его на их собственный сервер .Который может или не может быть виден из Интернета.

То есть мне нужно создать пакет MSI (или самораспаковывающийся установщик EXE, или что-то еще), который мой клиент может просто дважды щелкнуть, иПриложение MVC должно быть установлено на их локальном IIS.

Конечно, я могу просто написать некоторый код, который будет извлекать файлы, скопировать их на локальный жесткий диск, а затем создать веб-сайт или виртуальный каталог.в IIS, бла-бла-бла.Но что-то говорит мне, что должен быть более легкий путь.Как, скажем, расширение WiX, которое уже делает это.Или что-то.

Примечание: приложение очень простое.Нет необходимости в базах данных, специальных привилегиях, настройке SMTP-сервера ... Или вообще любой конфигурации.Просто скопируйте файлы и создайте приложение IIS.

Ответы [ 4 ]

6 голосов
/ 13 мая 2011

Для этого может потребоваться некоторое кодирование, но (если вам нужен довольно презентабельный пользовательский интерфейс) в пакете развертывания сборки Visual Studio есть функция.

Build delpoyment package

Где он соберет вам пакет, который ваш клиент сможет запустить для создания всех необходимых вещей в IIS, поэтому настройки IIS также применяются. Скотт Хансельман имеет ряд сообщений об этом. Вы можете изменить настройки по умолчанию в настройках пакета / публикации.

package/publish settings. Для развертывания пакетов вы должны иметь msdeploy.exe. Вы можете отправить заархивированную папку, и когда ваши клиенты запустят файл .cmd, они сразу же начнут работать. Тем не менее, если вы хотите поместить красивые бантики вокруг пакета, вы можете запустить его из приложения на C #, поэтому потребуется некоторое кодирование, но я уверен, что это не займет более 15 минут.

Usage:
--------------------------
{0} [/T|/Y] [/M:ComputerName] [/U:UserName] [/P:Password] [/G:UseTempAgent] [Additional msdeploy.exe flags ...]

Все, что вам в основном нужно сделать, это

System.Diagnostics.Process proc = new System.Diagnostics.Process();
const string filename = @"/*some file location*/";
proc.StartInfo.FileName = filename;
proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
proc.StartInfo.CreateNoWindow = true;
proc.Start();
proc.WaitForExit();
1 голос
/ 13 мая 2011

Всякий раз, когда я сталкиваюсь с необходимостью сложной установки, я всегда обращаюсь к WiX.

Вы можете использовать WiX для установки веб-сайта на основе MVC, а затем использовать расширение IIS (http://wix.sourceforge.net/manual-wix3/iis_xsd_index.htm), чтобы создать новый пул приложений и сайт, на котором он будет работать.

Несколько вопросов, о которых вы могли бы подумать: «1007 *»

  • Что если у пользователя не установлен IIS?
  • Что делать, если на них не установлен пакет инструментов MVC (иначе как связывать или не связывать)?

Кроме этих пунктов, я думаю, что WiX + IISExtension легко охватит ваши основные, скопировать файлы и создать требования к сайту.

1 голос
/ 13 мая 2011
0 голосов
/ 26 апреля 2011

В Visual Studio есть проекты настройки для веб-сайтов, которые вы можете использовать, хотя я считаю, что различные типы проектов развертывания в какой-то момент прекращаются в пользу WiX.

Я не знаю много о WiX, но я бы определенно посмотрел на него первым, чтобы увидеть, будет ли он делать то, что вы хотите. Я предполагаю, что в итоге получу пакет WiX, который извлечет файлы в место, куда их попросил пользователь, а затем выполнит сценарий PowerShell (развернутый в пакете) для настройки IIS и т. Д. При необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...