Управление веб-сайтом

149

После развертывания сайтом можно управлять с применением средств IIS. Ниже рассматриваются наиболее полезные опции конфигурирования и способы их использования.

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

IIS 8 может поддерживать множество сайтов на одном сервере. В рассмотренных примерах развертывания содержимое добавлялось к сайту по умолчанию, а в этом разделе будет показано, как создать совершенно новый сайт. Разверните древовидное представление в IIS Manager, щелкните правой кнопкой мыши на узле Sites (Сайты) и в контекстном меню выберите пункт Add Web Site... (Добавить веб-сайт...). Откроется диалоговое окно Add Web Site, показанное на рисунке ниже:

Диалоговое окно Add Web Site

Поле Site name (Имя сайта) должно содержать что-нибудь значащее. Оно используется для идентификации сайта в среде IIS Manager, но не влияет на содержимое сайта. В этом примере пул приложений был оставлен без изменений (пулы приложений рассматриваются далее). Поле Physical path (Физический путь) определяет местоположение, в котором IIS 8 будет искать содержимое для запросов на обслуживание, адресованных новому сайту. В этом примере на сервере был создан новый каталог D:\WebSites. Кнопки Connect as... (Подкл. как...) и Test Settings... (Тест настроек...) позволяют указать другие учетные данные пользователя для доступа к содержимому сайта.

Раздел Bindings (Привязка) позволяет указать, как IIS 8 будет прослушивать запросы, поступающие от клиентов. IIS 8 поддерживает множество протоколов, но мы сосредоточим внимание на HTTP, поскольку он используется наиболее широко. Для этого в списке Type (Тип) выберем опцию http.

Меню IP address (IP-адрес) позволяет выбрать сетевой интерфейс, который сервер будет прослушивать на предмет запросов. Для этого параметра было оставлено значение All Unassigned (Все неназначенные) - т.е. IIS будет прослушивать все интерфейсы за исключением тех, где другой сайт должен обслуживаться через этот же порт TCP. Значение Port (Порт) позволяет указать порт TCP, на котором IIS 8 будет прослушивать запросы клиентов. В общем случае каждый сайт должен обслуживаться через уникальный порт, поэтому, во избежание конфликтов с подключенным к порту 80 веб-сайтом по умолчанию, мы выбрали порт 8091.

Кроме того, отмечен флажок Start Web site immediately (Запустить веб-сайт сейчас) - т.е. сразу после щелчка на кнопке ОК сервер IIS создаст веб-сайт и начнет прослушивать запросы. Больше конфигурировать нечего, поэтому щелкните на кнопке OK, чтобы создать и запустить веб-сайт. Каждый из рассмотренных в предыдущей статье вариантов развертывания позволяет указывать сайт для развертывания - помните, что при развертывании сайты различаются по именам и используют указанные номера портов.

Создание виртуальных каталогов

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

D:\Projects\WebSites\TestAspNet

Чтобы связать новый каталог с IIS, откройте IIS Manager, разверните древовидное представление, щелкните правой кнопкой мыши на элементе Default Web Site и в контекстном меню выберите пункт Add Virtual Directory (Добавить виртуальный каталог). В результате откроется диалоговое окно Add Virtual Directory (Добавление виртуального каталога), показанное на рисунке ниже:

Диалоговое окно Add Virtual Directory

В поле Alias (Псевдоним) введите virtual. Для пути был выбран корневой каталог веб-сайта по умолчанию - т.е. любое имя, введенное в поле Alias (Псевдоним), будет добавляться в URL-адрес непосредственно после имени сервера. В поле Physical path (Физический путь) введите путь к одному из созданных ранее каталогов развертывания. Щелкните на кнопке OK, чтобы создать виртуальный каталог.

Чтобы протестировать его, откройте браузер на сервере и направьте его на URL-адрес http://localhost/virtual. Как и ранее, откроется созданный нами простой веб-сайт, но на этот раз содержимое будет извлекаться из нового каталога, а доступ к нему будет осуществляться с помощью указанного специального URL-адреса.

Использование пулов приложений

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

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

IIS 8 автоматически создает набор пулов приложений, в том числе пул, используемый по умолчанию при создании нового приложения. Просматривать и управлять пулами приложений можно с помощью IIS Manager - для этого достаточно развернуть элемент сервера в древовидном представлении и щелкнуть на элементе Application Pools (Пулы приложений). В результате отобразятся пулы, определенные на сервере. Пулы, определенные на нашем компьютере показаны на рисунке ниже:

Стандартные пулы приложений

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

Характеристики пулов приложений, отображаемые в главном окне IIS Manager
Столбец Описание
Name (Имя)

Определяет имя пула приложений. После того как пул создан, его имя изменить нельзя

Status (Состояние)

Этот столбец показывает, выполняется ли пул приложений - т.е. будет ли генерироваться ответ на запросы к приложениям, назначенным в пул. Подробнее это описано в разделе "Запуск и останов пула приложений"

.NET Framework Version (Версия .NET Framework)

Версия .NET Framework, которая будет использоваться для выполнения управляемого кода - в примерах развертывания эта настройка пула приложений по умолчанию была изменена. Более подробно указание версий платформы описано в разделе "Использование параллельного выполнения"

Managed Pipeline Mode (Режим управляемого конвейера)

IIS 8 поддерживает два режима конвейера для обработки запросов - Integrated (Встроенный) и Classic (Классический). Расширение конвейера подробнее рассматривается в следующей статье

Identity (Удостоверение)

Учетная запись Windows, используемая для запуска приложений пула

Applications (Приложения)

Количество приложений, назначенных в пул; на рисунке выше видно, что пул DefaultAppPool содержит три приложения

Создание нового пула приложений

Нестандартный пул приложений можно создать, щелкнув на действии Add Application Pool (Добавить пул приложений) в правой части экрана IIS Manager. Откроется диалоговое окно Add Application Pool (Добавление пула приложений), показанное на рисунке ниже:

Диалоговое окно Add Application Pool

Введите имя нового пула (в примере использовано имя CustomAppPool), выберите версию .NET Framework, которая будет применяться для запуска приложений, назначенных в пул, и требуемый режим управляемого конвейера (режим Classic (Классический) предназначен для унаследованных приложений; если уверенности нет, выберите режим Integrated (Встроенный)).

Щелкните на кнопке OK, и новый пул будет создан и добавлен в список IIS Manager. Щелчок на действии Advanced Settings... (Дополнительные параметры) позволит сконфигурировать детали, связанные с пулом.

Назначение приложения в пул приложений

Чтобы назначить приложение в пул приложений, выберите приложение в окне IIS Manager и щелкните на действии Basic Settings (Основные настройки) в правой части экрана. Откроется диалоговое окно Edit Application (Изменение приложения). Щелкните на кнопке Select (Выбрать) и выберите пул приложений из раскрывающегося списка, как показано на рисунке ниже. Мы выбрали специальный пул приложений, созданный в предыдущем разделе:

Диалоговое окно Select Application Poo!

Щелкните на кнопке OK. Щелкните на элементе Application Pools в IIS Manager - количество приложений пула CustomAppPool в столбце Applications станет равным 1, а количество приложений пула DefaultAppPool уменьшится на единицу.

Запуск и останов пула приложений

После щелчка на пуле приложений в правой части окна IIS Manager в разделе Application Pool Tasks (Задачи пула приложений) отобразятся три действия. Действия Start (Начало) и Stop (Остановить) определяют то, обслуживаются ли запросы, адресованные назначенным в пул приложениям. Если пул остановлен, клиенты будут получать сообщение об ошибке. Действие Recycle (Перезапуск) переустанавливает пул приложений. Это полезно для устранения постепенно накапливающихся и трудных для диагностирования проблем.

Использование параллельного выполнения

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

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

Если хотите изменить версию .NET, применяемую для сайта, который был создан с помощью проекта Visual Studio, придется изменить настройки проекта, чтобы он использовал эту версию, и снова выполнить развертывание. В противном случае при выполнении запросов к сайту будет отображаться сообщение об ошибке.

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