Развертывание сайта с помощью FTP-клиента (C#)

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

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

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

Введение

В предыдущем руководстве было представлено простое ASP.NET веб-приложение", состоящее из нескольких ASP.NET страниц, страницы master, пользовательского базового Page класса, нескольких изображений и трех таблиц стилей CSS. Теперь мы готовы развернуть это приложение в поставщике веб-узла, после чего приложение будет доступно для всех, у кого есть подключение к Интернету!

Из нашего обсуждения в учебнике Определение файлов, которые необходимо развернуть , мы знаем, какие файлы необходимо скопировать в поставщик веб-узла. (Помните, что копируемые файлы зависят от того, будет ли приложение скомпилировано явным образом или автоматически.) Но как получить файлы из среды разработки (нашего рабочего стола) в рабочую среду (веб-сервер, управляемый поставщиком веб-узла)? F ile T ransfer P rotocol (FTP) — это часто используемый протокол для копирования файлов с одного компьютера на другой по сети. Другой вариант — серверные расширения FrontPage (FPSE). В этом руководстве основное внимание уделяется использованию автономного клиентского программного обеспечения FTP для развертывания необходимых файлов из среды разработки в рабочую среду.

Примечание

Visual Studio включает средства для публикации веб-сайтов через FTP; Эти средства, а также средства, использующие FPSE, рассматриваются в следующем руководстве.

Чтобы скопировать файлы с помощью FTP, нам нужен FTP-клиент в среде разработки. FTP-клиент — это приложение, предназначенное для копирования файлов с установленного компьютера на компьютер под управлением FTP-сервера. (Если поставщик веб-узла поддерживает передачу файлов через FTP, как и большинство случаев, то на их веб-серверах работает FTP-сервер.) Существует ряд клиентских приложений FTP. Ваш веб-браузер может даже удвоить значение FTP-клиента. Моим любимым FTP-клиентом, который я буду использовать в этом руководстве, является FileZilla, бесплатный FTP-клиент с открытым кодом, доступный для Windows, Linux и Mac. Любой FTP-клиент будет работать, поэтому вы можете использовать любой клиент, с которым вам удобнее всего.

Если вы следите за этим, вам потребуется создать учетную запись у поставщика веб-узла, прежде чем вы сможете выполнить работу с этим руководством или последующими. Как отмечалось в предыдущем руководстве, существуют компании-поставщики услуг веб-узлов с широким спектром цен, функций и качества обслуживания. Для этой серии учебников я буду использовать скидка ASP.NET в качестве поставщика веб-узла, но вы можете следовать вместе с любым поставщиком веб-узла, если они поддерживают версию ASP.NET ваш сайт разработан в. (Эти руководства были созданы с помощью ASP.NET 3.5.) Кроме того, поскольку мы будем копировать файлы в поставщик веб-узла с помощью FTP в этом руководстве и в будущих, крайне важно, чтобы ваш поставщик веб-узлов поддерживал ftp-доступ к своим веб-серверам. Практически все поставщики веб-узлов предлагают эту функцию, но перед регистрацией следует удвоить проверка.

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

Напомним, что существует две версии веб-приложения Book Review: одна реализована с помощью модели проекта веб-приложения (BookReviewsWAP), а другая — с помощью модели проекта веб-сайта (BookReviewsWSP). Тип проекта влияет на то, компилируется ли сайт автоматически или явно, и эта модель компиляции определяет, какие файлы необходимо развернуть. Следовательно, мы рассмотрим развертывание проектов BookReviewsWAP и BookReviewsWSP отдельно, начиная с BookReviewsWAP. Скачайте эти два приложения ASP.NET, если вы еще этого не сделали.

Запустите проект BookReviewsWAP, перейдя в папку BookReviewsWAP и дважды щелкнув BookReviewsWAP.sln файл. Перед развертыванием проекта важно выполнить его сборку, чтобы убедиться, что все изменения в исходном коде включены в скомпилированную сборку. Чтобы выполнить сборку проекта, перейдите в меню Сборка и выберите пункт Меню Build BookReviewsWAP. При этом исходный код в проекте компилируется в одну сборку , BookReviewsWAP.dllкоторая помещается в папку Bin .

Теперь мы готовы к развертыванию необходимых файлов! Запустите FTP-клиент и подключитесь к веб-серверу у поставщика веб-узла. (При регистрации в компании по размещению веб-сайтов они будут отправлять вам по электронной почте сведения о том, как подключиться к FTP-серверу, включая адрес FTP-сервера, а также имя пользователя и пароль.)

Скопируйте следующие файлы с рабочего стола в корневую папку веб-сайта поставщика веб-узлов. При подключении к ftp-серверу у поставщика веб-узла, скорее всего, вы находитесь в корневом каталоге веб-сайта. Однако у некоторых поставщиков веб-узлов есть вложенная папка с именем www или wwwroot , которая служит корневой папкой для файлов веб-сайта. Наконец, при FTPing файлов может потребоваться создать соответствующую структуру папок в рабочей среде : Bin папку, папку Fiction , папку Images и т. д.

  • ~/Default.aspx
  • ~/About.aspx
  • ~/Site.master
  • ~/Web.config
  • ~/Web.sitemap
  • Полное содержимое Styles папки
  • Полное содержимое Images папки (и ее вложенной папки , BookCovers)
  • ~/Fiction/Default.aspx
  • ~/Fiction/Blaze.aspx
  • ~/Tech/Default.aspx
  • ~/Tech/CYOW.aspx
  • ~/Tech/TYASP35.aspx
  • ~/Bin/BookReviewsWAP.dll

На рисунке 1 показан файл FileZilla после копирования необходимых файлов. FileZilla отображает файлы на локальном компьютере слева, а файлы на удаленном компьютере справа. Как показано на рисунке 1, ASP.NET файлы исходного кода, такие как About.aspx.cs, находятся на локальном компьютере (среда разработки), но не были скопированы в поставщик веб-узла (рабочую среду), так как файлы кода не нужно развертывать при использовании явной компиляции.

Примечание

Файлы исходного кода на рабочем сервере не повреждаются, так как они игнорируются. ASP.NET по умолчанию запрещает HTTP-запросы к файлам исходного кода, чтобы даже если файлы исходного кода присутствуют на рабочем сервере, они были недоступны для посетителей веб-сайта. (То есть, если пользователь попытается посетить http://www.yoursite.com/Default.aspx.cs , он получит страницу с ошибкой, объясняющую, что такие типы файлов - .cs файлы - запрещены.)

Снимок экрана: FTP-клиент FileZilla, на котором показано, что некоторые файлы исходного кода ASP Dot Net не были скопированы на удаленный сервер.

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

После развертывания сайта уделите некоторое время, чтобы протестировать сайт. Если вы приобрели доменное имя и правильно настроили параметры DNS, вы можете посетить свой сайт, введя доменное имя. Кроме того, поставщик веб-узла должен предоставить вам URL-адрес сайта, который будет выглядеть примерно так: accountname. webhostprovider.com или webhostprovider.com/accountname. Например, URL-адрес учетной записи в ASP.NET скидки: http://httpruntime.web703.discountasp.net.

На рисунке 2 показан развернутый сайт "Обзоры книг". Обратите внимание, что я просматриваю его в asp-приложении "Скидка". Серверы NET по адресу http://httpruntime.web703.discountasp.net. На данный момент любой пользователь с подключением к Интернету может просмотреть мой веб-сайт! Как и следовало ожидать, сайт выглядит и ведет себя так же, как и при тестировании в среде разработки.

Примечание

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

Сайт обзоров книг теперь доступен для всех, у кого есть подключение к Интернету

Рис. 2. Сайт обзоров книг теперь доступен для всех пользователей с подключением к Интернету (щелкните для просмотра полноразмерного изображения)

Развертывание проекта веб-сайта "Рецензирование книги"

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

Как и в проекте веб-приложения, рекомендуется сначала выполнить сборку приложения перед его развертыванием. Хотя сборка проекта веб-сайта не создает сборку, она проверка для ошибок во время компиляции на странице. Лучше найти эти ошибки сейчас, а не заставить посетителей вашего сайта обнаружить их за вас!

После успешной сборки проекта используйте FTP-клиент, чтобы скопировать следующие файлы в корневую папку веб-сайта поставщика веб-узла. Может потребоваться создать соответствующую структуру папок в рабочей среде.

Примечание

Если вы уже развернули проект BookReviewsWAP, но по-прежнему хотите попытаться развернуть проект BookReviewsWSP, сначала удалите все файлы на веб-сервере, которые были отправлены при развертывании BookReviewsWAP, а затем разверните файлы для BookReviewsWSP.

  • ~/Default.aspx
  • ~/Default.aspx.cs
  • ~/About.aspx
  • ~/About.aspx.cs
  • ~/Site.master
  • ~/Site.master.cs
  • ~/Web.config
  • ~/Web.sitemap
  • Полное содержимое Styles папки
  • Полное содержимое Images папки (и ее вложенной папки , BookCovers)
  • ~/App_Code/BasePage.cs
  • ~/Fiction/Default.aspx
  • ~/Fiction/Default.aspx.cs
  • ~/Fiction/Blaze.aspx
  • ~/Fiction/Blaze.aspx.cs
  • ~/Tech/Default.aspx
  • ~/Tech/Default.aspx.cs
  • ~/Tech/CYOW.aspx
  • ~/Tech/CYOW.aspx.cs
  • ~/Tech/TYASP35.aspx
  • ~/Tech/TYASP35.aspx.cs

На рисунке 3 показан файл FileZilla после копирования необходимых файлов. Как видите, файлы ASP.NET исходного кода, такие как About.aspx.cs, присутствуют как на локальном компьютере (среда разработки), так и на поставщике веб-узла (в рабочей среде), так как при использовании автоматической компиляции необходимо развернуть файлы кода.

Снимок экрана: окно ftp-клиента FileZilla, в котором показаны файлы исходного кода ASP Dot Net успешно отправлены на сервер.

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

Модель компиляции приложения не влияет на взаимодействие с пользователем. Те же ASP.NET страницы доступны, и они выглядят и ведут себя одинаково независимо от того, был ли веб-сайт создан с помощью модели проекта веб-приложения или проекта веб-сайта.

Обновление веб-приложения в рабочей среде

Разработка и развертывание веб-приложений не являются одноразовым процессом. Например, при создании веб-сайта Book Review я создал различные страницы и написал сопутствующий код на своем персональном компьютере (среде разработки). После достижения определенного стабильного состояния, я развернул свое приложение, чтобы другие могли посетить сайт и прочитать мои отзывы. Но развертывание не означает конец моей разработки на этом сайте. Я могу добавить больше рецензий на книги или реализовать новые функции, такие как позволить моим посетителям оценить книги или оставить свои собственные комментарии. Такие усовершенствования будут разработаны в среде разработки, и после их завершения потребуется развернуть. Поэтому разработка и развертывание являются циклическими. Вы разрабатываете приложение, а затем развертываете его. Пока сайт работает и находится в рабочей среде, добавляются новые функции и со временем устраняются ошибки, что требует повторного развертывания приложения. И так далее и так далее.

Как и следовало ожидать, при повторном развертывании веб-приложения необходимо только скопировать новые и измененные файлы. Нет необходимости повторно развертывать неизменяемые страницы или файлы поддержки на стороне сервера или клиента (хотя это не повредит).

Примечание

При использовании явной компиляции следует помнить, что каждый раз, когда вы добавляете новую страницу ASP.NET в проект или вносите изменения, связанные с кодом, необходимо перестроить проект, который обновляет сборку в папке Bin . Следовательно, вам потребуется скопировать эту обновленную сборку в рабочую среду при обновлении веб-приложения в рабочей среде (вместе с другим новым и обновленным содержимым).

Также уясните, что любые изменения Web.config в файлах или в каталоге Bin останавливаются и перезапускаются пулом приложений веб-сайта. Если состояние сеанса хранится в InProc режиме (по умолчанию), посетители сайта будут терять состояние сеанса при каждом изменении этих файлов ключей. Чтобы избежать этой ошибки, рассмотрите возможность хранения сеанса с помощью режимов StateServer или SQLServer . Дополнительные сведения по этой теме см. в статье Режимы состояния сеанса.

Наконец, помните, что повторное развертывание приложения может занять от нескольких секунд до нескольких минут в зависимости от количества и размера файлов, которые необходимо скопировать в рабочую среду. В течение этого времени пользователи, посещающие ваш сайт, могут столкнуться с ошибками или нечетным поведением. Вы можете "отключить" все приложение, добавив страницу с именем App_Offline.htm в корневой каталог приложения, которая объясняет пользователям, что сайт не работает для обслуживания (или любого другого), и вскоре будет создана резервная копия. App_Offline.htm При наличии файла среда выполнения ASP.NET перенаправляет все входящие запросы на страницу.

Итоги

Развертывание веб-приложения влечет за собой копирование необходимых файлов из среды разработки в рабочую среду. Наиболее распространенным способом передачи файлов по сети является протокол FTP, и большинство поставщиков веб-узлов поддерживают ftp-доступ к своим веб-серверам. В этом руководстве мы узнали, как использовать FTP-клиент для развертывания необходимых файлов на веб-сервере. После развертывания веб-сайт может посетить любой пользователь с подключением к Интернету!

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

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

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