Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Команда веб-развертывания
Общие сведения о параметризации
Разработка веб-приложений чаще всего включает развертывание кода в разных средах: разработка, промежуточные или рабочие серверы. Каждая среда может использовать другой набор ресурсов, таких как сведения о подключении к базе данных, и веб-развертывание создается с помощью функций, которые помогают преобразовать веб-приложения при развертывании в разных средах. Чтобы преобразовать приложение во время развертывания, различные части приложения могут быть параметризованы, и при развертывании Web Deploy принимает пользовательские данные для замены отдельных фрагментов информации в этом приложении.
Различные способы развертывания приложений: динамическая синхронизация и Visual Studio
Средство веб-развертывания можно использовать для развертывания приложения несколькими разными способами. Веб-приложение может быть синхронизировано с одного сервера (возможно, сервера разработки) на другой сервер (возможно, сервер, на котором размещено приложение в Интернете). Веб-приложения также можно упаковать в файл .zip, скачать и установить более широкой, более широкой аудиторией разработчиков. Это модель, которая часто используется приложениями, похожими на платформу (например, Wordpress). Наконец, веб-развертывание используется за кулисами Visual Studio при разработке и развертывании проектов веб-приложения (WAP). В этом случае Visual Studio автоматически параметризирует большинство необходимых частей веб-приложений с возможностью создания пользовательских параметров при необходимости.
Создание и параметризация приложения для развертывания
Корпорация Майкрософт предлагает простой способ установки более 50 популярных веб-приложений, таких как WordPress, Joomla, Drupal и DotNetNuke. Эти приложения можно установить относительно быстро и легко. За кулисами эти пользовательские интерфейсы используют инструмент Web Deploy для установки приложения из пакета .zip. Чтобы создать пакет приложения, чтобы его можно было установить с помощью одного из этих средств, необходимо выполнить ряд шагов, включая параметризацию частей приложения.
Чтобы превратить приложение в пакет .zip, который можно развернуть, необходимо выполнить следующие действия.
- Создание приложения.
- Создайте файл манифеста. Этот файл сообщает средству веб-развертывания различные действия, необходимые для установки приложения. Это включает в себя такие вещи, как копирование файлов и настройка базы данных.
- Создайте файл параметров. Это файл параметризации, который веб-развертывание использует для идентификации частей приложения, которые необходимо преобразовать во время установки на основе входных данных пользователя.
- Создайте файл .zip, содержащий приложение, файл манифеста и файл параметров.
В этой статье подробно представлен каждый из этих шагов.
Шаг 1. Создание приложения
В настоящее время нет простого способа создать приложение для экспериментирования с параметризацией веб-развертывания, за исключением клонирования из существующего приложения.
Теперь у вас есть приложение, готовое к пакету и параметризации, чтобы другие разработчики могли скачать и установить его. Следующим шагом является настройка файла, который будет сообщать веб-развертыванию шаги, необходимые для установки приложения.
Шаг 2. Создание файла манифеста
Средство веб-развертывания может выполнять ряд функций, включая копирование файлов, параметры конфигурации веб-сервера и базы данных. Каждая из этих функций становится возможной благодаря "провайдеру" веб-развертывания. Чтобы установить только что созданное приложение, вы будете использовать поставщик iisApp , который помогает копировать файлы и создавать приложение на сервере; поставщик setAcl , который задает необходимые разрешения на файл; и поставщик dbFullSql , который настраивает базу данных. Чтобы сообщить Web Deploy использовать нескольких поставщиков во время установки, необходимо создать файл Manifest.xml, который перечисляет три поставщика следующим образом (можно скопировать пример отсюда):
<?xml version="1.0" encoding="utf-8" ?>
<msdeploy.iisApp>
<iisApp path="Vacation Pictures" />
<setAcl path="Vacation Pictures/App_Data" setAclAccess="Write, ReadAndExecute" />
<dbFullSql path="CreateDBAndUser.sql" />
<dbFullSql path="VacPicDBSchema.sql" />
</msdeploy.iisApp>
Давайте более подробно рассмотрим каждую из этих записей.
Поставщик IISApp
Запись iisApp указывает на папку, в которой находится содержимое приложения. Рассмотрим пример.
<iisApp path="Vacation Pictures" />
Значение пути было бы другим, если бы у приложения было другое имя.
Поставщик SetAcl
Запись setAcl указывает Web Deploy предоставить разрешения на чтение, запись и выполнение для каталога "App_Data" при установке приложения. Рассмотрим пример.
<setAcl path="Vacation Pictures/App_Data" setAclAccess="Write, ReadAndExecute" />
Для различных приложений могут потребоваться специальные разрешения для других папок. В этом случае вы создадите другую запись setAcl для каждого требуемого параметра разрешения.
Поставщик DbFullSQL
Записи поставщика dbFullSQL указывают на различные скрипты SQL, используемые для создания базы данных и пользователя ("CreateDBAndUser.sql") и настройки таблиц базы данных ("VacPicDBSchema.sql") во время установки.
Скрипт CreateDBAndUser.sql — это довольно простой сценарий, который можно скопировать здесь:
VacPicDBSchema.sql — это скрипт, который создает все таблицы в базе данных, которую использует приложение. Этот файл можно создать с помощью средства командной строки веб-развертывания. В командной строке перейдите к месту установки веб-развертывания (обычно %programfiles%\IIS\Microsoft Web Deploy <LatestVersion>) и введите следующую команду:
msdeploy -verb:sync -source:dbfullsql="data source=.\SQLExpress;initial catalog=PhotoGallery;user id=sa;password=*" -dest:dbfullsql="c:\VacPicDBSchema.sql"
Замените звездочку (*
) соответствующим паролем администратора SQL.
На базовом уровне приведенная выше команда использует поставщика dbFullSql для копирования данных из базы данных с помощью строки подключения к базе данных ("-source:dbfullsql=...") и копирует их в файл скрипта базы данных ("-dest:dbfullsql=...")
Шаг 3. Создание файла параметров
После создания файла манифеста, который сообщает веб-развертыванию, как установить приложение, необходимо создать файл параметров, который сообщает Веб-развертыванию, как преобразовать определенные параметры, чтобы приложение можно было настроить для работы в среде развертывания конкретного пользователя.
Основные части, которые будут полезны для преобразования:
- Имя приложения: если конечный пользователь, устанавливающий приложение, хочет изменить имя приложения, необходимо параметризировать имя приложения.
- Имя базы данных: пользователю может потребоваться настроить приложение для запуска в базе данных, которая использует другое имя. В этом случае необходимо параметризовать сведения о подключении к базе данных.
Web Deploy считывает информацию о параметризации из XML-файла. В этом случае вы вызовете файл Parameters.xml. Для этой демонстрации файл параметров можно скопировать здесь и выглядеть следующим образом (на веб-сайте этот XML-файл можно развернуть в поле кода, как используется на этой странице):
Далее вы узнаете, как параметризировать имя приложения и имя базы данных.
Параметризация имени приложения
Параметризация веб-развертывания может использоваться для преобразования различных типов входных данных. Обычно это включает поиск текста в XML-файле или текстовом файле и замене его другим текстом. В случае имени приложения копирование файла и создание веб-сайта на целевом компьютере обрабатывается поставщиком веб-развертывания. Таким образом, чтобы параметризировать имя приложения, вам будет необходимо параметризировать провайдера, которого вы ранее объявили в файле Manifest.xml.
Поставщик в файле манифеста может рассматриваться как поставщик источника , который будет считывать сведения из пакета приложения, скачиваемого пользователем. В свою очередь, когда приложение установлено, поставщик назначения используется в фоновом режиме для копирования содержимого и создания веб-сайта на компьютере пользователя. Файл Manifest.xml содержит сведения о поставщике источника , поэтому, чтобы разрешить пользователю изменять имя приложения; необходимо параметризовать поставщик, определенный в файле Manifest.xml.
В файле Parameters.xml, связанном с выше, эта параметризация выполняется с первой записью XML:
<parameter
name="Application Path"
description="Full site path where you would like to install your application (i.e., Default Web Site/PhotoGallery)"
tags="iisapp">
<parameterValidation kind="AllowEmpty" />
<parameterEntry kind="ProviderPath" scope="iisapp" match="Vacation Pictures" />
</parameter>
Важный xml-тег, который следует заметить, — параметрEntry. Это говорит Web Deploy несколько вещей: одно, что вы параметризуете поставщика в манифесте (kind="ProviderPath"); два, что вы параметризуете поставщика iisApp (scope="iisapp"); наконец, что вы хотите заменить только записи в файле манифеста со значением "Изображения отпусков".
Вторая запись в файле параметров ('name="SetAclParameter1') просто гарантирует, что поставщик setAcl в нашем файле Manifest.xml использует то же имя, которое вводится пользователем для поставщика iisApp , которое выполняется со строкой "defaultValue="{Application Path}/App_Data". Значение в скобках {Application Path}, ссылается на имя первого параметра.
Параметризация имени базы данных
Остальные записи в файле Parameters.xml имеют дело с параметризирующей информацией о подключении к базе данных. 2-й-6-й записи в файле параметров собирают сведения из пользовательского интерфейса при установке приложения. Эти записи предлагают пользователю ввести информацию о сервере базы данных, где будет размещена база данных для приложения ("Сервер базы данных"), имя создаваемой базы данных ("Имя базы данных"), имя пользователя, которое следует связать с базой данных ("Имя пользователя базы данных"), и пароль для этого пользователя ("Пароль базы данных"). Чтобы создать базу данных и пользователя, веб-развертывание также требует пользователя администратора базы данных ("Администратор базы данных") и пароля ("Пароль администратора базы данных").
Наконец, все сведения, введенные пользователем, используются веб-развертыванием для фактического выполнения скриптов, создающих базу данных (CreateDBAndUser.sql) и настройки таблиц (VacPicDBSchema.sql). Это — 7-я и 8-я запись в Parameters.xml.
<parameter
name="Create DB and DB User Connection String"
description="Automatically sets the connection string for the connection request."
defaultValue="Server={Database Server};Database={Database Name};uid={Database Administrator};Pwd=*;" <!-- replace Pwd=* with Pwd={Database Administrator Password} -->
tags="Hidden,SQLConnectionString,Validate">
<parameterEntry type="ProviderPath" scope="dbfullsql" match="CreateDBAndUser.sql" />
</parameter>
<parameter
name="Populate DB Connection String"
description="Automatically sets the connection string for the connection request."
defaultValue="Server={Database Server};Database={Database Name};uid={Database Administrator};Pwd=*;" <!-- replace Pwd=* with Pwd={Database Administrator Password} -->
tags="Hidden,SQLConnectionString,Validate">
<parameterEntry type="ProviderPath" scope="dbfullsql" match="VacPicDBSchema.sql" />
</parameter>
Опять же, так как веб-развертывание использует поставщика для синхронизации сведений о базе данных (как объявлено в файле Manifest.xml), эти две записи параметров — type="ProviderPath".
Наше приложение "Фотографии из отпуска" также отслеживает подключение к базе данных в файле Web.config. Эта параметризация обрабатывается последней записью в Parameters.xml.
Шаг 4. Создание ZIP-файла, содержащего приложение, файл манифеста и файл параметров
Теперь у вас есть основные стандартные блоки, необходимые для развертывания приложения, поэтому теперь можно упаковать приложение в соответствующий формат пакета. Пакет должен содержать файл Parameters.xml, файл Manifest.xml и скрипты установки базы данных на верхнем (корневом) уровне zip-пакета, а также содержимое приложения в вложенной папке.
В левом нижнем углу WebMatrix щелкните вкладку "Сайт ", чтобы перейти к содержимому сайта.
На странице сайта есть ссылка на место жизни содержимого приложения:
Щелкните ссылку, чтобы перейти к содержимому приложения. Перейдите на другой уровень из этой папки и создайте новую папку с именем "VacationPicsWPIInstaller". Скопируйте папку содержимого приложения, файлы Manifest.xml и Parameters.xml и скрипты установки базы данных в только что созданную папку:
Выделив все файлы, щелкните правой кнопкой мыши и выберите "Отправить в" — "Сжатая (zip) папка".
Этот zippped-файл можно назвать любым, но чтобы лучше работать с демонстрацией, назовите его "VacationPicsWPIInstaller.zip".
Теперь этот пакет содержит все, что необходимо для его развертывания.