Пошаговое руководство. Развертывание проекта веб-приложения с помощью публикации одним щелчком

В данном пошаговом руководстве демонстрируется развертывание проекта веб-приложения в компании-поставщике услуг размещения веб-сайтов с помощью публикации одним щелчком. Развертываемый проект включает базу данных членства ASP.NET. Ниже перечислены задачи, демонстрируемые на примере данного проекта.

  • Начальное развертывание файлов веб-приложения и базы данных.

  • Последующее развертывание обновлений веб-приложения без изменения базы данных.

Обязательные компоненты

Для выполнения этого пошагового руководства потребуется следующее.

  • Visual Studio или Visual Web Developer Express.

    Примечание

    Если используется Visual Studio, в пошаговом руководстве предполагается, что при первом запуске Visual Studio была выбрана коллекция параметров Веб-разработка.Дополнительные сведения см. в разделе Практическое руководство. Выбор параметров среды веб-разработки.

  • Учетная запись, зарегистрированная в компании-поставщике услуг размещения веб-сайтов, которая поддерживает публикацию одним щелчком. Если этой учетной записи еще не имеется, необходимо зарегистрироваться для ее получения. Сведения о поиске компании-поставщике услуг размещения см. в каталоге WebsiteSpark Partner Catalog.

Получение сведений от службы размещения веб-сайтов

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

  • URL-адрес службы для учетной записи размещения. Этот URL-адрес указывает на обработчик IIS, который управляет развертыванием на веб-сервере компании-поставщика услуг размещения. URL-адрес, как правило, указывается в формате https://prefix.hostingcompanyname.com или https://prefix.hostingcompanyname.com:8172/MsDeploy.axd.

  • Имя веб-сайта и имя приложения, разделенные символом косой черты (/). При предоставлении этой информации компания-поставщик услуг размещения, как правило, использует имя "Сайт/приложение". Кроме того, компания-поставщик услуг размещения может указать только имя сайта. В этом случае в качестве имени приложения можно указать любое имя.

  • Имя пользователя и пароль учетной записи, имеющей разрешения на обновление сайта на веб-сервере компании-поставщика услуг размещения.

  • Строка подключения, которая может использоваться для доступа к базе данных сайта на сервере базы данных компании-поставщика услуг размещения. Учетные данные для входа, содержащиеся в строке подключения, должны иметь разрешения на обновление структуры базы данных.

  • Сведения о том, разрешено ли использование недоверенных сертификатов. Если компания-поставщик услуг размещения ничего не говорит об этом, можно предположить, что нет необходимости разрешать недоверенные сертификаты.

Компании-поставщики услуг размещения, которые поддерживают публикацию одним щелчком, обычно предоставляют эту информацию в сообщении электронной почты, отправляемом пользователю после регистрации учетной записи. Если данное сообщение не получено автоматически, необходимо запросить требуемую информацию.

Создание веб-проекта, который использует базу данных

Работа начинается с создания проекта веб-приложения с использованием шаблона Веб-приложение ASP.NET Visual Studio. Этот шаблон создает веб-проект, включающий главную страницу, страницы содержимого, файл каскадной таблицы стилей (CSS-файл), файлы клиентских скриптов и функции членства.

Создание веб-проекта для развертывания

  1. В меню Файл Visual Studio выберите пункт Создать проект, чтобы открыть диалоговое окно Новый проект.

    Примечание

    Убедитесь, что выбран пункт Создать проект, а не Новый веб-узел.Публикация одним щелчком работает только с проектами веб-приложений.

  2. В окне Установленные шаблоны разверните узел Visual Basic или C# и выберите Интернет.

  3. Выберите шаблон Веб-приложение ASP.NET.

    Диалоговое окно Новый проект аналогично окну, показанному на следующем рисунке:

    Диалоговое окно "Новый проект" со значениями по умолчанию

  4. Нажмите кнопку ОК.

    Visual Studio создает веб-приложение. Для базы данных членства создается папка App_Data, в которой пока отсутствует база данных.

    В следующих действиях предполагается, что имя приложения — WebApplication1.

  5. В обозревателе решений разверните папку "Учетная запись", щелкните правой кнопкой мыши файл Register.aspx, а затем выберите команду Просмотр в обозревателе.

    Откроется страница Создать новую учетную запись, как показано на следующем рисунке:

    Создание страницы новой учетной записи

  6. В поле Имя пользователя введите значение newuser, в поле Электронная почта — newuser@webapplication1.com, укажите пароль, а затем нажмите кнопку Создать пользователя. Запишите созданный пароль, поскольку его потребуется ввести позднее.

    В папке App_Data создается файл базы данных SQL Server ASPNETDB.MDF, и в него вводятся указанные значения.

  7. Закройте браузер.

Ввод параметров развертывания для файлов, конфигурации служб IIS и баз данных

По умолчанию активной конфигурацией построения для новых проектов является "Debug". В данном пошаговом руководстве демонстрируется развертывание общедоступного веб-сайта. Поэтому необходимо переключиться на конфигурацию построения Release, а затем создать параметры развертывания для этой конфигурации.

Задание активной конфигурации построения

  1. В меню Построение выберите Диспетчер конфигураций.

    Откроется диалоговое окно Диспетчер конфигураций.

  2. В раскрывающемся списке Активная конфигурация решения выберите пункт Release.

  3. Список Активная конфигурация решения обычно отображается в главной панели инструментов. Если список отображается в этой панели, можно изменить конфигурацию построения, не открывая Диспетчер конфигураций.

  4. Закройте Диспетчер конфигураций.

В следующей процедуре определяются развертываемые файлы и параметры служб IIS. Для этого используется вкладка Упаковка и публикация веб-проекта на странице Свойства проекта.

Указание файлов и параметров служб IIS для развертывания

  1. В обозревателе решений щелкните правой кнопкой мыши проект и выберите пункт Свойства.

    Откроется страница Свойства.

  2. Перейдите на вкладку Упаковка и публикация веб-проекта.

    Вкладка Пакет/Публикация веб-сайта отображается так, как показано на следующем рисунке.

    Вкладка "Упаковка и публикация веб-проекта"

  3. Убедитесь, что в раскрывающемся списке Конфигурация выбрано значение Активная (Release). Активная конфигурация построения выбирается по умолчанию, и в предыдущей процедуре задана активная конфигурация построения Release.

  4. Убедитесь, что в раскрывающемся списке Элементы для развертывания (применяется для всех способов развертывания) выбран вариант Только необходимые для запуска приложения файлы. (Это значение по умолчанию.)

  5. Установите флажок Исключить автоматически созданные символы отладки.

    Общедоступные веб-сайты, как правило, не выполняются в режиме отладки.

    Примечание

    Возможность запуска развернутого веб-сайта в режиме отладки зависит от этого параметра и параметра файла Web.config.Она не зависит от имени конфигурации построения.

  6. Установите флажок Исключить файлы из папки App_Data.

    Проект использует MDF-файл SQL Server Express из папки App_Data для базы данных членства. Однако при публикации одним щелчком эта база данных развертывается путем создания и выполнения скриптов с использованием целевой строки подключения. Поэтому MDF-файл развертываться не будет.

  7. Убедитесь, что установлен флажок Включить все базы данных, настроенные на вкладке "Упаковка и публикация SQL-проекта". (Вкладка Упаковка и публикация SQL-проекта будет настроена в следующей процедуре.)

    Сохраните изменения, сделанные на вкладке Упаковка и публикация веб-проекта.

В следующей процедуре указываются скрипты SQL Server, которые должны выполняться в ходе развертывания. Для этого используется вкладка Упаковка и публикация SQL-проекта.

Задание скриптов SQL Server, выполняющихся при развертывании

  1. Перейдите на вкладку Упаковка и публикация SQL-проекта.

    Вкладка Пакет/Публикация SQL отображается так, как показано на следующем рисунке.

    Вкладка "Упаковка и публикация SQL-проекта"

  2. Нажмите кнопку Импортировать из Web.config.

    В таблице создается строка с именем "ApplicationServices-Deployment".

  3. Убедитесь, что в таблице Записи базы данных выбрана строка ApplicationServices-Web.config.

    Поля под таблицей Записи базы данных применяются к строке, выбранной в таблице Записи базы данных. Если строка не выбрана, поля под таблицей будут отключены.

  4. В поле Строка подключения для конечной базы данных введите строку подключения, полученную от компании-поставщика услуг размещения.

  5. Убедитесь, что установлен флажок Извлечь данные и (или) схему из существующей базы данных.

    При нажатии кнопки Импортировать из Web.config этот флажок устанавливается автоматически. Поле Строка подключения для исходной базы данных автоматически заполняется с помощью строки подключения из файла Web.config.

  6. Выберите в раскрывающемся списке Параметры создания скриптов базы данных пункт Схема и данные.

    В этом случае вместе с базой данных развертывается введенный ранее пример записи членства. Таким образом гарантируется возможность входа на общедоступный сайт с использованием учетных данных newuser, введенных на сайте разработки.

  7. Сохраните изменения, сделанные на вкладке Упаковка и публикация SQL-проекта.

В следующей процедуре создается файл преобразования, который обеспечивает задание правильного значения для строки подключения к базе данных в развернутом файле Web.config.

Обновление строки подключения в файле Web.config путем создания файла преобразования

  1. В обозревателе решений разверните файл Web.config.

  2. При отсутствии файла с именем Web.Release.config щелкните правой кнопкой мыши файл Web.config и выберите пункт Добавить преобразования конфигурации.

  3. Откройте файл Web.Release.config.

  4. Удалите блок комментариев, содержащий элемент connectionStrings.

  5. Вставьте на его место следующую разметку (замените значение [строка подключения] на строку соединения, полученную от компании-поставщика услуг размещения).

    <connectionStrings>
      <add name="ApplicationServices"
           connectionString="[connection string]"
           providerName="System.Data.SqlClient" 
           xdt:Transform="SetAttributes" xdt:Locator="Match(name)" />
      </connectionStrings>
    
  6. Сохраните и закройте файл Web.Release.config.

Создание профиля публикации

В диалоговом окне Публикация веб-сайта создайте профиль публикации, который определяет способ и место развертывания проекта. Можно создать отдельные профили с разными параметрами. Профили не зависят от конфигурации построения. Это означает, что каждый профиль публикации может использоваться с любой конфигурацией построения. Например, можно создать один профиль для развертывания на локальном сервере, а другой — для развертывания в компании-поставщике услуг размещения. Сначала можно использовать профиль локального сервера с конфигурацией построения Release, чтобы проверить успешность развертывания с параметрами развертывания Release. Затем можно использовать профиль компании-поставщика услуг размещения для публикации на общедоступном веб-сайте.

Создание профиля публикации

  1. В меню Построить выберите пункт Опубликовать WebApplication1.

    Откроется диалоговое окно Публикация веб-сайта, в котором для имени профиля по умолчанию используется значение "Профиль1", как показано на следующем рисунке:

    Диалоговое окно "Публикация веб-сайта"

  2. В раскрывающемся списке Способ публикации выберите пункт Веб-развертывание.

  3. В поле URL-адрес службы введите значение, полученное от компании-поставщика услуг размещения.

  4. В поле Сайт или приложение введите значение, полученное от компании-поставщика услуг размещения.

  5. Снимите флажок Не удалять дополнительные файлы в назначении.

    Этот флажок означает, что, если после первоначального развертывания удаляются файлы веб-проекта, а затем вновь развертывается проект, эти файлы будут также удалены с сервера компании-поставщика услуг размещения. Другими словами, при установке этого флажка процесс развертывания синхронизирует файлы на целевом сервере таким образом, чтобы они отражали только файлы, которые являются частью развертывания.

  6. Установите флажок Пометить как приложение IIS в назначении.

  7. Если компания-поставщик услуг размещения рекомендует разрешить недоверенные сертификаты, установите флажок Разрешить ненадежный сертификат. В противном случае оставьте этот флажок снятым.

  8. В поля Имя пользователя и Пароль введите учетные данные, предоставленные компанией-поставщиком услуг размещения.

  9. Установите флажок Сохранить пароль.

    Пароль сохраняется в зашифрованном виде в XML-файле в папке проекта.

  10. Нажмите кнопку Сохранить для сохранения профиля и закройте диалоговое окно.

Развертывание веб-приложения

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

Развертывание приложения и проверка его успешности

  1. Щелкните правой кнопкой мыши главную панель инструментов и убедитесь, что выбрана панель Веб-публикация одним щелчком.

    Отображаемая панель инструментов Веб-публикация одним щелчком аналогична панели, показанной на следующем рисунке:

    Панель инструментов публикации одним щелчком

  2. В панели инструментов Веб-публикация одним щелчком нажмите кнопку Опубликовать.

    Проект развертывается на серверах компании-поставщика услуг размещения. Ход выполнения развертывания отображается в окне Вывод Visual Studio, как показано на следующем рисунке:

    Окно вывода после публикации одним щелчком

  3. Протестируйте приложение, перейдя по указывающему на него общедоступному URL-адресу.

    Открывается страница Default.aspx, как показано на следующем рисунке:

    Страница Default.aspx после развертывания

  4. Щелкните ссылку Вход.

    Откроется страница Вход, как показано на следующем рисунке:

    Страница входа

  5. Введите значение newuser в поле Имя пользователя, введите пароль, который использовался при создании учетной записи newuser, и нажмите кнопку Войти.

    Снова откроется страница Default.aspx. На этот раз рядом со ссылкой Выход отображается текст Добро пожаловать, newuser!, как показано на следующем рисунке:

    Страница Default.aspx после входа

    Это доказывает, что база данных и веб-страница успешно развернуты.

Развертывание изменений приложения

После завершения развертывания проекта можно внести изменения на сайт и нажать кнопку Опубликовать еще раз. Visual Studio автоматически определяет, что именно было изменено, и загружает только изменения. Однако Visual Studio не выполняет автоматический поиск изменений данных и структуры базы данных. Чтобы запретить Visual Studio повторно создавать таблицы базы данных необходимо снять флажок.

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

Изменение приложения

  1. Откройте файл About.aspx.

  2. Удалите текст "Поместите здесь содержимое" и замените его новым текстом "Добро пожаловать в WebApplication1".

  3. Сохраните файл.

Теперь необходимо изменить параметры развертывания базы данных для проверки того, что Visual Studio не будет выполнять повторное развертывание базы данных.

Отключение развертывания базы данных

  1. В обозревателе решений щелкните правой кнопкой мыши проект и выберите пункт Свойства.

    Откроется страница Свойства.

  2. Перейдите на вкладку Упаковка и публикация веб-проекта.

  3. Снимите флажок Включить все базы данных, настроенные на вкладке "Упаковка и публикация SQL-проекта".

Теперь можно вновь развернуть проект. Visual Studio автоматически определит, что именно было изменено, и загрузит только изменения. Скрипты базы данных выполняться не будут.

Развертывание приложения и проверка его успешности

  1. В панели инструментов Веб-публикация одним щелчком нажмите кнопку Опубликовать.

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

    Окно вывода после повторного развертывания

  2. Протестируйте приложение, перейдя по указывающему на него общедоступному URL-адресу.

  3. Перейдите на вкладку О программе на странице Default.aspx.

    В браузере открывается страница "О программе", которая содержит новый текст, добавленный в предыдущей процедуре, как показано на следующем рисунке:

    Страница с информацией, на которой показан измененный текст

    Примечание

    Подтверждение того, что база данных не была повторно развернута, не требуется.Если не отключить обновления базы данных, второе развертывание завершается неудачей, поскольку скрипты пытаются создать уже существующие объекты.

Следующие действия

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

  • Изменение параметров в файле Web.config, отличных от строк подключения к базам данных.

  • Вставка в файл Web.config строки подключения, которая отличается от строки подключения, использовавшейся для развертывания базы данных. (Веб-приложение, как правило, может использовать учетные данные, которым предоставлено меньше разрешений, чем требуется для процесса развертывания.)

  • Развертывание нескольких баз данных.

  • Развертывание обновлений данных или структуры базы данных.

Дополнительные сведения о способах выполнения этих задач см. в разделе Пошаговое руководство. Развертывание проекта веб-приложения с помощью пакета веб-развертывания (часть 1 из 4). Инструкции по настройке вкладок Упаковка и публикация веб-проекта и Упаковка и публикация SQL-проекта для публикации одним щелчком не отличаются от соответствующих инструкций для развертывания приложения с использованием пакета.

Дополнительные сведения о развертывании проектов веб-приложений ASP.NET см. в разделе Карта содержимого развертывания ASP.NET.

См. также

Основные понятия

Карта содержимого развертывания ASP.NET