Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Самый простой способ развертывания приложения ASP.NET заключается в ручном копировании необходимых файлов из среды разработки в рабочую среду. В этом руководстве показано, как использовать FTP-клиент для получения файлов из рабочего стола в поставщик веб-узла.
Введение
В предыдущем руководстве представлено простое веб-приложение ASP.NET проверки книги, состоящее из нескольких страниц ASP.NET, главной страницы, пользовательского базового 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-клиент будет работать, однако, так что вы можете использовать любой клиент, с которым вы наиболее комфортно.
Если вы хотите пройти обучение, вам потребуется создать учетную запись с провайдером веб-хостинга, прежде чем завершить это руководство или последующие. Как отмечалось в предыдущем руководстве, существует множество компаний-поставщиков веб-хостинга с широким спектром цен, функций и качества обслуживания. В этой серии руководств я буду использовать Discount ASP.NET в качестве провайдера веб-хостинга, но вы можете продолжить работу с любым провайдером веб-хостинга, если они поддерживают версию ASP.NET, на которой разработан ваш сайт. (Эти учебники были созданы с помощью ASP.NET 3.5.) Кроме того, поскольку в этом и будущих руководствах мы будем копировать файлы на веб-хостинг провайдера, используя FTP, необходимо, чтобы ваш веб-хостинг провайдер поддерживал доступ к их веб-серверам по FTP. Практически все поставщики веб-узлов предлагают эту функцию, но перед регистрацией необходимо выполнить двойную проверку.
Развертывание проекта веб-приложения проверки книги
Помните, что существует две версии веб-приложения проверки книги: одна реализована с помощью модели проекта веб-приложения (BookReviewsWAP) и другой с помощью модели проекта веб-сайта (BookReviewsWSP). Тип проекта влияет на то, компилируется ли сайт автоматически или явно, и эта модель компиляции определяет, какие файлы необходимо развернуть. Следовательно, мы рассмотрим развертывание проектов BookReviewsWAP и BookReviewsWSP отдельно, начиная с BookReviewsWAP. Скачайте эти два ASP.NET приложения, если вы этого еще не сделали.
Запустите проект BookReviewsWAP, перейдя в BookReviewsWAP папку и дважды щелкнув BookReviewsWAP.sln файл. Перед развертыванием проекта важно создать его, чтобы убедиться, что все изменения в исходном коде включены в скомпилированную сборку. Чтобы создать проект, перейдите в меню "Сборка" и выберите пункт меню "Сборка BookReviewsWAP". Это компилирует исходный код в проекте в одну сборку, BookReviewsWAP.dllкоторая помещается в папку Bin .
Теперь мы готовы развернуть необходимые файлы! Запустите FTP-клиент и подключитесь к веб-серверу в поставщике веб-узлов. (При регистрации в компании веб-размещения они будут отправлять вам информацию о том, как подключиться к FTP-серверу; это включает адрес FTP-сервера, а также имя пользователя и пароль.)
Скопируйте следующие файлы из рабочего стола в папку корневого веб-сайта в поставщике веб-узлов. Когда вы входите через FTP на веб-сервер у хостинг-провайдера, вы, вероятно, находитесь в корневом каталоге веб-сайта. Однако некоторые поставщики веб-узлов имеют вложенную папку с именем www или wwwroot которая служит корневой папкой для файлов веб-сайта. Наконец, при использовании FTP файлов может потребоваться создать соответствующую структуру папок в производственной среде — 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.vb, находятся на локальном компьютере (среда разработки), но не были скопированы к поставщику услуг веб-хостинга (рабочая среда), так как файлы кода не нужно развертывать при явной компиляции.
Замечание
Нет вреда при наличии файлов исходного кода на рабочем сервере, так как они игнорируются. ASP.NET запрещает HTTP-запросы к файлам исходного кода по умолчанию, чтобы даже если файлы исходного кода присутствуют на рабочем сервере, они недоступны для посетителей веб-сайта. (То есть, если пользователь попытается открыть http://www.yoursite.com/Default.aspx.vb, то попадет на страницу ошибки, которая объясняет, что эти типы файлов - файлы .vb - недоступны.)
Рис. 1. Использование FTP-клиента для копирования необходимых файлов с рабочего стола на веб-сервер в поставщике веб-узлов (щелкните, чтобы просмотреть изображение полного размера)
После развертывания сайта потребуется некоторое время для тестирования сайта. Если вы приобрели доменное имя и правильно настроили параметры DNS, вы можете посетить сайт, введя доменное имя. Кроме того, поставщик веб-узла должен предоставить вам URL-адрес сайта, который будет выглядеть примерно так же, как имя учетной записи. webhostprovider.com или webhostprovider.com/accountname. Например, URL-адрес моей учетной записи на Discount ASP.NET: http://httpruntime.web703.discountasp.net.
На рисунке 2 показан развернутый сайт отзывов книг. Обратите внимание, что я просматриваю его на серверах Discount ASP.NET, по адресу http://httpruntime.web703.discountasp.net. На данный момент времени любой пользователь с подключением к Интернету может просмотреть мой веб-сайт! Как ожидается, сайт выглядит и ведет себя так же, как и при тестировании в среде разработки.
Замечание
Если при просмотре вашего приложения возникает ошибка, сделайте паузу и убедитесь, что развернут правильный набор файлов. Затем проверьте сообщение об ошибке, чтобы узнать, показывает ли он какие-либо подсказки о проблеме. После этого вы можете обратиться в службу технической поддержки вашей веб-компании или отправить свой вопрос на соответствующий форум на форумах ASP.NET.
Рис. 2. Сайт отзывов книг теперь доступен всем пользователям с подключением к Интернету (щелкните, чтобы просмотреть полноразмерное изображение)
Развертывание проекта веб-сайта проверки книги
При развертывании приложения ASP.NET, использующего автоматическую компиляцию, например проект веб-сайта BookReviewsWSP, в папке Bin нет скомпилированной сборки. В результате файлы исходного кода веб-приложения должны быть развернуты в рабочей среде. Давайте рассмотрим этот процесс.
Как и в проекте веб-приложения, рекомендуется сначала создать приложение перед его развертыванием. Во время создания проекта веб-сайта не создается сборка, но выполняется проверка на наличие ошибок компиляции на странице. Лучше найти эти ошибки сейчас, чем позволять посетителю вашего сайта обнаруживать их за вас!
После успешного создания проекта используйте FTP-клиент для копирования следующих файлов в корневую папку веб-сайта в поставщике веб-узлов. Возможно, потребуется создать соответствующую структуру папок в рабочей среде.
Замечание
Если вы уже развернули проект BookReviewsWAP, но по-прежнему хотите попробовать развернуть проект BookReviewsWSP, сначала удалите все файлы на веб-сервере, которые были отправлены при развертывании BookReviewsWAP, а затем развернуть файлы для BookReviewsWSP.
~/Default.aspx~/Default.aspx.vb~/About.aspx~/About.aspx.vb~/Site.master~/Site.master.vb~/Web.config~/Web.sitemap- Полное содержимое
Stylesпапки - Полное содержимое
Imagesпапки (и ее вложенной папки)BookCovers ~/App_Code/BasePage.vb~/Fiction/Default.aspx~/Fiction/Default.aspx.vb~/Fiction/Blaze.aspx~/Fiction/Blaze.aspx.vb~/Tech/Default.aspx~/Tech/Default.aspx.vb~/Tech/CYOW.aspx~/Tech/CYOW.aspx.vb~/Tech/TYASP35.aspx~/Tech/TYASP35.aspx.vb
Рисунок 3 демонстрирует программу FileZilla после копирования необходимых файлов. Как видно, ASP.NET файлы исходного кода, например About.aspx.vb, присутствуют на локальном компьютере (среде разработки) и поставщике веб-узла (рабочей среде), так как файлы кода необходимо развернуть при автоматической компиляции.
Рис. 3. Использование FTP-клиента для копирования необходимых файлов с рабочего стола на веб-сервер в поставщике веб-узлов (щелкните, чтобы просмотреть изображение полного размера)
Взаимодействие с пользователем не влияет на модель компиляции приложения. Те же ASP.NET страницы доступны, и они выглядят так же, как и веб-сайт, созданный с помощью модели проекта веб-приложения или модели проекта веб-сайта.
Обновление веб-приложения в рабочей среде
Разработка и развертывание веб-приложений не являются одноразовым процессом. Например, при создании веб-сайта "Рецензирование книги" я создал различные страницы и написал сопровождающий код на моем личном компьютере (среда разработки). После достижения определенного стабильного состояния я развернул свое приложение, чтобы другие могли посетить сайт и прочитать мои отзывы. Но развертывание не означает конец разработки на этом сайте. Я могу добавить больше отзывов книг или реализовать новые функции, такие как разрешение моим посетителям оценить книги или оставить свои собственные комментарии. Такие усовершенствования будут разработаны в среде разработки и, когда они будут завершены, потребуется их развертывание. Таким образом, разработка и развертывание являются циклическими. Вы разрабатываете приложение, а затем развертываете его. Хотя сайт работает и в рабочей среде, новые функции добавляются и с течением времени устраняются ошибки, что требует повторного развертывания приложения. И так далее.
Как можно ожидать, при повторном развертывании веб-приложения необходимо копировать только новые и измененные файлы. Не нужно повторно развертывать без изменений страницы или файлы поддержки на стороне сервера или клиента (хотя это не вредно).
Замечание
При использовании явной компиляции следует помнить, что при добавлении новой страницы ASP.NET в проект или внесении изменений, связанных с кодом, необходимо перестроить проект, который обновляет сборку в папке Bin . Следовательно, необходимо скопировать обновленную сборку в рабочую среду при обновлении веб-приложения в рабочей среде (а также другое новое и обновленное содержимое).
Также имейте в виду, что любые изменения в Web.config или файлы в каталоге Bin останавливают и перезапускают пул приложений веб-сайта. Если состояние сеанса хранится с помощью InProc режима (по умолчанию), посетители сайта потеряют состояние сеанса всякий раз, когда эти ключевые файлы изменяются. Чтобы избежать этой ошибки, рассмотрите возможность хранения сеанса, используя режимы StateServer или SQLServer. Дополнительные сведения по этой теме см. в режимах состояния сеанса.
Наконец, помните, что повторное развертывание приложения может занять от нескольких секунд до нескольких минут в зависимости от количества и размера файлов, которые необходимо скопировать в рабочую среду. В это время пользователи, посещающие ваш сайт, могут столкнуться с ошибками или странным поведением. Вы можете "отключить" всё приложение, добавив страницу с именем App_Offline.htm в корневой каталог вашего приложения, которая объясняет пользователям, что сайт закрыт на техническое обслуживание (или другую причину) и вскоре снова будет доступен.
App_Offline.htm Когда файл присутствует, среда выполнения ASP.NET перенаправляет все входящие запросы на ту страницу.
Сводка
Развертывание веб-приложения подразумевает копирование необходимых файлов из среды разработки в рабочую среду. Наиболее распространенными способами передачи файлов по сети является протокол FTP, и большинство поставщиков веб-узлов поддерживают доступ к FTP на своих веб-серверах. В этом руководстве мы узнали, как использовать FTP-клиент для развертывания необходимых файлов на веб-сервере. После развертывания веб-сайт может посетить любой пользователь с подключением к Интернету!
Счастливое программирование!
Дальнейшее чтение
Дополнительные сведения о разделах, описанных в этом руководстве, см. в следующих ресурсах: