Развертывание сайта с помощью Visual Studio (C#)

Скотт Митчелл

Загрузить PDF-файл

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

Введение

В предыдущем руководстве показано, как развернуть простое веб-приложение ASP.NET для поставщика веб-узла. В частности, в руководстве показано, как использовать FTP-клиент, такой как FileZilla, для передачи необходимых файлов из среды разработки в рабочую среду. Visual Studio также предлагает встроенные средства для упрощения развертывания в поставщике веб-узла. В этом руководстве рассматриваются два из этих средств: средство копирования веб-сайта, где можно перемещать файлы на удаленный веб-сервер и с его помощью с помощью серверных расширений FTP или FrontPage; и средство Публикации, которое копирует весь веб-сайт в указанное расположение.

Примечание

Еще одним средством, связанным с развертыванием, предлагаемым Visual Studio, является надстройка веб-установки проектов . Проекты веб-установки упаковывает содержимое веб-сайта и сведения о конфигурации в один MSI-файл. Этот вариант наиболее полезен для веб-сайтов, развернутых в интрасети, или для компаний, которые продают предварительно упакованные веб-приложения, которые клиенты устанавливают на собственных веб-серверах. Проекты веб-развертывания Add-In — это Add-In Visual Studio, который упрощает определение различий в конфигурации между сборками для сред разработки и рабочих сред. Проекты веб-установки не рассматриваются в этой серии руководств. Проекты веб-развертывания приведены в руководстве Общие различия конфигурации между разработкой и рабочей средой .

Развертывание сайта с помощью средства копирования веб-сайта

Средство копирования веб-сайта Visual Studio по функциональным возможностям аналогично автономному FTP-клиенту. В двух словах, средство копирования веб-сайта позволяет подключаться к удаленному веб-сайту через FTP или серверные расширения FrontPage. Как и пользовательский интерфейс FileZilla, пользовательский интерфейс копирования веб-сайта состоит из двух панелей: в левой области перечислены локальные файлы, а в правой — эти файлы на целевом сервере.

Примечание

Средство копирования веб-сайта доступно только для проектов веб-сайтов. Visual Studio предлагает это средство при работе с проектом веб-приложения.

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

Запустите проект средства копирования веб-сайта, щелкнув значок Копировать веб-сайт в Обозреватель решений (этот значок обведен на рисунке 1). Кроме того, можно выбрать параметр Копировать веб-сайт в меню Веб-сайт. Любой из этих подходов запускает пользовательский интерфейс копирования веб-сайта, показанный на рис. 1; Заполнена только левая панель на рис. 1, так как нам еще предстоит подключиться к удаленному серверу.

Пользовательский интерфейс средства копирования веб-сайта разделен на две панели

Рис. 1. Пользовательский интерфейс средства копирования веб-сайтов разделен на две области (щелкните для просмотра полноразмерного изображения)

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

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

  • Файловая система — выберите этот параметр, чтобы развернуть сайт в папке или сетевой папке, доступной с компьютера.
  • Локальные службы IIS — используйте этот параметр для развертывания сайта на веб-сервере IIS, установленном на компьютере.
  • FTP-сайт — подключение к удаленному веб-сайту с помощью FTP.
  • Удаленный сайт — подключение к удаленному веб-сайту с помощью серверных расширений FrontPage.

Большинство поставщиков веб-узлов поддерживают FTP, но все меньше предлагают поддержку серверного расширения FrontPage. По этой причине я выбрал параметр Ftp Site (Сайт FTP), а затем ввел сведения о подключении, как показано на рисунке 2.

Снимок экрана: диалоговое окно

Рис. 2. Указание целевого веб-сайта (щелкните для просмотра полноразмерного изображения)

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

Давайте добавим новую страницу в проект BookReviewsWSP, а затем развернем ее, чтобы увидеть средство копирования веб-сайта в действии. Создайте новую страницу ASP.NET в Visual Studio в корневом каталоге с именем Privacy.aspx. Используйте страницу master Site.master и добавьте на нее политику конфиденциальности вашего сайта. На рисунке 3 показана среда Visual Studio после создания этой страницы.

Добавление кода>новой страницы с именем <Privacy.aspx</code> в корневую папку веб-сайта

Рис. 3. Добавление новой страницы с именем Privacy.aspx в корневую папку веб-сайта (щелкните для просмотра полноразмерного изображения)

Затем вернитесь к пользовательскому интерфейсу копирования веб-сайта. Как показано на рисунке 4, в левой области теперь содержатся новые файлы — Policy.aspx и Policy.aspx.cs. Более того, эти файлы помечаются значком стрелки и состоянием "Создать", что указывает, что они существуют на локальном сайте, но не на удаленном сайте.

Средство

Рис. 4. Средство копирования веб-сайта включает новую Privacy.aspx страницу в левой области (щелкните для просмотра полноразмерного изображения)

Чтобы развернуть новые файлы, выберите их и щелкните значок со стрелкой, чтобы перенести их на удаленный сайт. После завершения передачи Policy.aspx файлы и Policy.aspx.cs существуют как на локальном, так и на удаленном сайтах с состоянием Без изменений.

Наряду с выводом новых файлов средство копирования веб-сайта выделяет все файлы, которые отличаются между локальными и удаленными сайтами. Чтобы увидеть это в действии, вернитесь на страницу Privacy.aspx и добавьте еще несколько слов в политику конфиденциальности. Сохраните страницу, а затем вернитесь в средство копирования веб-сайта. Как показано на рисунке 5, Privacy.aspx страница в левой области имеет состояние Изменено, что означает, что она не синхронизирована с удаленным сайтом.

Средство копирования веб-сайта указывает, что <Privacy.aspx< кода>или кодовая> страница изменена

Рис. 5. Средство копирования веб-сайта указывает, что Privacy.aspx страница была изменена (щелкните для просмотра полноразмерного изображения)

Средство копирования веб-сайта также указывает, был ли файл удален с момента последней операции копирования. Удалите из Privacy.aspx локального проекта и обновите средство копирования веб-сайта. Файлы Privacy.aspx и Privacy.aspx.cs остаются в списке на левой панели, но имеют состояние Удалено, указывающее, что они были удалены с момента последней операции копирования.

Публикация веб-приложения

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

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

Примечание

Хотя параметр Опубликовать доступен в Visual Studio как для проектов веб-сайтов, так и для проектов веб-приложений, Visual Web Developer предлагает параметр Опубликовать только для проектов веб-приложений.

Рассмотрим развертывание приложения Book Reviews с помощью параметра Опубликовать. Начните с открытия BookReviewsWAP (проект веб-приложения) в Visual Studio. В меню Опубликовать выберите проект Build BookReviewsWAP. Откроется диалоговое окно с запросом целевого расположения, а также других параметров конфигурации (см. рис. 6). Как и при использовании средства копирования веб-сайта, вы можете указать расположение, указывающее на локальную папку, локальный веб-сайт в IIS, удаленный веб-сайт, поддерживающий серверные расширения FrontPage, или адрес FTP-сервера. Вы можете выбрать, следует ли заменить файлы на удаленном веб-сервере развернутыми файлами или удалить все содержимое на удаленном сайте перед публикацией. Можно также указать, следует ли копировать:

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

Также можно отправить содержимое App_Data папки.

Снимок экрана: диалоговое окно

Рис. 6. Указание целевого веб-сайта (щелкните для просмотра полноразмерного изображения)

Для приложения "Рецензирование книги" удаленный сайт содержит файлы, развернутые при копировании проекта BookReviewsWSP с помощью средства копирования веб-сайта. Поэтому давайте начнем с удаления всего существующего содержимого в параметре Опубликовать. Кроме того, давайте просто скопировать необходимые файлы, а не загромождать рабочую среду ненужным исходным кодом и файлами проекта. Указав эти параметры, нажмите кнопку Опубликовать. В течение следующих нескольких секунд Visual Studio развернет необходимые файлы на целевом сайте, отображая ход выполнения в окне Вывод.

На рисунке 7 показаны файлы на ftp-сайте после завершения операции публикации. Обратите внимание, что были отправлены только страницы разметки и необходимые файлы поддержки на стороне сервера и клиента.

Только необходимые файлы были опубликованы в рабочей среде.

Рис. 7. Только необходимые файлы были опубликованы в рабочей среде (щелкните для просмотра полноразмерного изображения)

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

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

Сводка

Развертывание веб-сайта включает копирование необходимых файлов из среды разработки в рабочую среду. В предыдущем руководстве показано, как передавать файлы с помощью FTP-клиента, например FileZilla. В этом руководстве рассматриваются два средства развертывания в Visual Studio: средство копирования веб-сайта и параметр Опубликовать. Средство копирования веб-сайта похоже на FTP-клиент в том, что оно имеет интерфейс с двумя сдвигами, перечисляющий файлы на локальном компьютере и указанный удаленный компьютер, что позволяет легко отправлять или скачивать файлы между двумя компьютерами. Параметр Опубликовать — это более простой инструмент, который явно компилирует проект, а затем развертывает все приложение в указанном назначении.

Счастливого программирования!

Дополнительные материалы

Дополнительные сведения о темах, рассмотренных в этом руководстве, см. в следующих ресурсах: