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

186

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

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

Развертывание посредством копирования файлов

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

Подготовка IIS

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

http://<имя__сервера>:80/WebsiteDeployment/FileCopy

IIS нужно подготовить так, чтобы было куда скопировать наш файл. В IIS Manager выберите элемент Default Web Site. Как следует из его имени, это сайт по умолчанию на сервере. Щелкните на нем правой кнопкой мыши и в контекстном меню выберите пункт Explore (Проводник), чтобы отрыть окно проводника Windows для заданного по умолчанию каталога IIS, которым является inetpub\wwwroot на системном томе (как правило, C:\).

Создайте каталог WebsiteDeployment, а в нем - каталог FileCopy (чтобы обеспечить существование пути inetpub\wwwroot\WebsiteDeployment\FileCopy). Закройте окно проводника, чтобы вернуться в IIS Manager. Щелкните правой кнопкой на записи Default Web Site и в контекстном меню выберите пункт Refresh (Обновить), чтобы увидеть новый каталог.

Веб-сайт

Для демонстрации этой методики развертывания мы создали очень простой веб-сайт. Исходный код содержит единственную форму ASP.NET с одной меткой:

<form id="form1" runat="server">
        <div class="style1">
            <h1><strong>Простой веб-сайт</strong></h1>
        </div>
        <br />
        Версия .NET Framework: <asp:Label ID="Label2" runat="server" Text="Label1" />
</form>

В коде этой формы определен текст метки, отображающей версию .NET Framework, которая используется для обслуживания данного сайта:

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Label2.Text = System.Environment.Version.Major.ToString();
    }
}

Развертывание веб-сайта

При использовании этой методики развертывания нужно просто скопировать файлы в созданный каталог. Переместите файлы веб-сайта на сервер любым подходящим способом - посредством общего сетевого диска, съемного диска USB и т.п. - и скопируйте файлы Default.aspx и Default.aspx.cs в каталог FileCopy, созданный на сервере.

Когда файлы будут скопированы, вернитесь в окно IIS Manager на сервере, щелкните правой кнопкой на папке FileCopy в древовидном представлении и в контекстном меню выберите пункт Refresh. В нижней части экрана щелкните на кнопке Content View (Просмотр содержимого). В центральной части окна должны отобразиться два файла веб-сайта, как показано на рисунке ниже:

Элементы развернутого веб-сайта

В этом состоит наиболее важная часть этой технологии развертывания - вначале должна быть создана структура каталогов, которая представляет необходимый URL-адрес, а затем в готовые каталоги копируются файлы веб-сайта. Посмотрим, как это выглядит на практике. Для этого выберите FileCopy в IIS Manager и щелкните на ссылке Browse (Обзор) в правой части окна. Откроется веб-браузер с загруженным URL-адресом созданной папки. Окно браузера должно выглядеть подобно показанному на рисунке ниже:

Просмотр развернутого веб-сайта

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

http://localhost/WebsiteDeployment/FileCopy/

Вспомните, что localhost - это специальное имя, обозначающее текущий компьютер, а URL-адрес, в котором не указан порт, будет использовать порт 80. (В моем случае я переместил сайт на порт 8080 по причинам, указанным в предыдущей статье). Можете проверить это, направив браузер по следующему URL-адресу:

http://professorweb/WebsiteDeployment/FileCopy/

Результат будет полностью аналогичен предыдущему (professorweb в данном случае имя сервера).

Конфигурирование развертывания

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

В окне IIS Manager разверните элемент сервера и щелкните на элементе Application Pools (Пулы приложений). Щелкните на ссылке Set Application Pool Defaults (Определить значения по умолчанию для пула приложений) в правой части окна. В открывшемся диалоговом окне Application Pool Defaults (Значения по умолчанию для пула приложений) измените значение настройки .NET Framework Version (Версия среды .NET Framework) на необходимую:

Веб-сайт, функционирующий под управлением версии .NET Framework 4

Вернитесь в браузер и перезагрузите страницу.

IIS понадобится также указать, что развернутый сайт является приложением. Это не обязательно, но при развертывании приложений ASP.NET почти всегда будет желательным - активизируется состояние сеанса и другие функциональные средства ASP.NET. Щелкните правой кнопкой мыши на папке FileCopy в области Connections (Подключения) и в контекстном меню выберите пункт Convert to Application (Преобразовать в приложение), как показано на рисунке ниже:

Преобразование в приложение

Откроется диалоговое окно Add Application (Добавление приложения). Используемый пул приложений можно изменить, щелкнув на кнопке Select (Выбрать). Настроить учетную запись пользователя, которую IIS будет применять для доступа к содержимому сайта, можно с помощью кнопок Connect as... (Подкл. как...) и Test Settings... (Тест настроек...). Пока что просто щелкните на кнопке ОК. Возможно, придется выбрать пункт Refresh (Обновить) в меню View (Вид) (или, как это часто имеет место, закрыть и снова открыть IIS Manager), но теперь значок записи FileCopy в древовидном представлении должен измениться.

Развертывание с помощью Visual Studio

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

Создание виртуального каталога для нового веб-сайта

При создании веб-сайта в Visual Studio, вы можете одновременно создать виртуальный каталог для этого веб-сайта. Если вы сделаете это, Visual Studio не будет использовать встроенный тестовый сервер IIS Express. Вместо этого, все ваши запросы будут обрабатываться полной версией IIS.

Для создания виртуального каталога IIS сначала необходимо запустить Visual Studio с правами администратора. Затем выберите пункт меню File --> New --> Web Site и в открывшемся диалоговом окне "New Web Site" выберите HTTP для расположения сайта (вместо файловой системы). Вы можете вставить строку URL. Например, если вы укажете http://localhost/MyWebSite, Visual Studio создаст каталог MyWebSite в виртуальном каталоге C:\Inetpub\Wwwroot используемым по умолчанию:

Создание сайта в IIS

Такой подход не является лучшим т.к. вы не сможете настроить некоторые параметры, такие как страницы по умолчанию, пользовательские ошибки и т.п. Вместо создания нового виртуального каталога с помощью Visual Studio лучше будет выбрать существующий каталог IIS, который в свою очередь можно сконфигурировать с помощью IIS Manager. Для этого щелкните по кнопке Browse (Обзор) и выберите нужный виртуальный каталог:

Выбор виртуального каталога IIS

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

Копирование веб-сайта

Visual Studio также включает в себя быстрый и простой способ для передачи файлов веб-приложения. Вам просто нужно выбрать в меню WebSite --> Copy Web Site. Откроется новое диалоговое окно Visual Studio, которое покажется знакомым любому, кто имел дело с различными IDE-программами для работы с сайтами, такими как Dreamweaver или Expression Web:

Копирование файлов веб-сайта

Это окно состоит из двух списков файлов. Слева находятся файлы в текущем проекте (на локальном жестком диске). Справа находятся файлы на целевом месте (удаленный веб-сервер). При первом открытии этого окна вы ничего не увидите справа, потому что вы не указали цель. Вы должны нажать кнопку Connect вверху, чтобы предоставить эту информацию. При этом Visual Studio откроет знакомое диалоговое окно, которое выглядит почти так же, как то, что вы видели при создании виртуального каталога для нового проекта. В этом окне вы можете выбрать одно из мест, куда нужно копировать веб-сайт:

File System

Это самый простой выбор - вы копируете файлы сайта внутри текущей файловой системы.

Local IIS

Позволяет выбирать виртуальные каталоги локального сервера IIS. Это удобно если сайт нужно будет разместить в другом каталоге.

FTP Site

Обеспечивает доступ к удаленному сайту через FTP. Многие хостинг-провайдеры предлагают доступ к сайтам через FTP, так что благодаря этой настройке вы можете сразу разворачивать свой сайт на удаленном веб-сервере, не прибегая к услугам различных FTP-программ наподобие TotalCommander:

Развертывание сайта через FTP
Remote Web Server

Эта опция предлагает подключение к сайту по URL-адресу с использованием расширения FrontPage Extensions.

Как только вы выберите соответствующий пункт назначения, нажмите кнопку Open. Visual Studio попытается подключиться к удаленному сайт и получить список файлов.

Пройди тесты
Лучший чат для C# программистов