Сценарий. Создание классического веб-сайта ASP в IIS

Кит Ньюман и Роберт Макмюррей

Документ проводит вас через процесс установки IIS и настройки веб-сайта на классической ASP. Классический ASP — это серверная среда сценариев, которую можно использовать для создания и запуска динамических веб-приложений. С помощью ASP можно объединить HTML-страницы, команды скриптов и com-компоненты для создания интерактивных веб-страниц, которые легко разрабатывать и изменять. Классический ASP является предшественником ASP.NET, но он по-прежнему широко используется сегодня.

Классическая конфигурация СЕРВЕРА ASP добавляет модули IIS для расширений ASP и ISAPI в установку IIS по умолчанию.

Необходимые условия

Чтобы получить большую часть из этого руководства, необходимо иметь доступ к компьютеру, на котором выполняется одна из следующих операционных систем:

  • Windows Server® 2012
  • Windows® 8

Шаг 1. Установка веб-сервера IIS

Эту процедуру можно выполнить с помощью пользовательского интерфейса Windows или из командной строки.

Установка IIS в Windows Server 2012 с помощью пользовательского интерфейса

  1. На начальной странице щелкните плитку диспетчера серверов и нажмите кнопку "ОК".

  2. В диспетчере серверов выберите панель мониторинга и нажмите кнопку "Добавить роли и компоненты".

  3. В мастере добавления ролей и компонентов на странице "Перед началом работы " нажмите кнопку "Далее".

  4. На странице "Выбор типа установки" выберите "Установка на основе ролей" или "Установка на основе компонентов " и нажмите кнопку "Далее"

  5. На странице "Выбор целевого сервера " выберите сервер из пула серверов, выберите сервер и нажмите кнопку "Далее".

  6. На странице "Выбор ролей сервера " выберите веб-сервер (IIS) и нажмите кнопку "Далее".

  7. На странице "Выбор компонентов " обратите внимание на предварительно выбранные компоненты, установленные по умолчанию, а затем выберите следующие дополнительные службы ролей:

    • ASP
    • Расширения ISAPI
  8. Нажмите кнопку Далее.

  9. На странице роли веб-сервера (IIS) нажмите кнопку "Далее".

  10. На странице "Выбор служб ролей " обратите внимание на предварительно выбранные службы ролей, установленные по умолчанию, и нажмите кнопку "Далее". (Примечание. Необходимо установить только службы ролей IIS 8 по умолчанию для веб-сервера статического содержимого.)

  11. На странице "Подтверждение выбора установки" подтвердите выбранные параметры и нажмите кнопку "Установить".

  12. На странице "Ход установки" убедитесь, что установка роли веб-сервера (IIS) и необходимых служб ролей завершена успешно, а затем нажмите кнопку "Закрыть".

  13. Чтобы убедиться, что службы IIS успешно установлены, введите следующее в веб-браузер:

    http://localhost

    Вы увидите страницу приветствия IIS по умолчанию.

Установка IIS в Windows 8 с помощью пользовательского интерфейса

  1. На начальной странице введите панель управления и щелкните значок панели управления в результатах поиска.

  2. На панели управления щелкните " Программы" и нажмите кнопку "Включить или отключить функции Windows".

  3. В диалоговом окне "Компоненты Windows " щелкните "Службы Internet Information Services", запишите предварительно выбранные компоненты, установленные по умолчанию, а затем выберите следующие дополнительные службы ролей:

    • ASP
    • Расширения ISAPI
  4. Нажмите кнопку ОК.

  5. Чтобы убедиться, что службы IIS успешно установлены, введите следующее в веб-браузер:

    http://localhost

    Отображается страница приветствия IIS по умолчанию.

Установка IIS с помощью командной строки

Введите следующую команду в командной строке или в скрипт:

Start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-ApplicationDevelopment;IIS-ASP;IIS-ISAPIExtensions;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-Security;IIS-RequestFiltering;IIS-HttpCompressionStatic;IIS-WebServerManagementTools;IIS-ManagementConsole;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI

Шаг 2. Добавление классического веб-сайта ASP

Эту процедуру можно выполнить с помощью пользовательского интерфейса, выполнив команды Appcmd.exe в окне командной строки, изменив файлы конфигурации напрямую или написав скрипты WMI.

Добавление веб-сайта с помощью пользовательского интерфейса

  1. Откройте диспетчер IIS.

    • Для Windows Server 2012 на начальной странице щелкните плитку диспетчера серверов и нажмите кнопку "ОК". На панели мониторинга диспетчера серверов выберите меню "Сервис" и выберите диспетчер служб IIS.
    • Для Windows 8 на Начальном экране введите Панель управления, а затем щелкните значок Панель управления в результатах поиска. На экране панели управления щелкните "Система" и "Безопасность", щелкните "Администрирование" и выберите диспетчер служб IIS.
  2. В области "Подключения" щелкните правой кнопкой мыши узел "Сайты " в дереве и нажмите кнопку "Добавить веб-сайт".

  3. В диалоговом окне "Добавление веб-сайта " введите понятное имя веб-сайта в поле "Имя сайта ".

  4. Если вы хотите выбрать другой пул приложений, отличный от пула приложений, указанный в поле пула приложений , нажмите кнопку "Выбрать". В диалоговом окне "Выбор пула приложений " выберите пул приложений из списка пула приложений и нажмите кнопку "ОК".

  5. В поле "Физический путь " введите физический путь к папке веб-сайта или нажмите кнопку обзора (...), чтобы перейти к файловой системе, чтобы найти папку.

  6. Если физический путь, введенный на шаге 5, находится в удаленном ресурсе, нажмите кнопку "Подключиться" , чтобы указать учетные данные, имеющие разрешение на доступ к пути. Если вы не используете определенные учетные данные, выберите параметр "Пользователь приложения" (сквозная проверка подлинности) в диалоговом окне "Подключение от имени ".

  7. Выберите протокол для веб-сайта из списка типов .

  8. Значение по умолчанию в поле IP-адресаAll Unassigned. Если необходимо указать статический IP-адрес для веб-сайта, введите IP-адрес в поле IP-адреса .

  9. Введите номер порта в текстовом поле "Порт ".

  10. При необходимости введите имя заголовка узла для веб-сайта в поле заголовка узла .

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

  12. Нажмите кнопку ОК.

Добавление веб-сайта с помощью командной строки

Используйте следующий синтаксис в командной строке или в скрипте: (Примечание. Для работы этого синтаксиса необходимо находиться в следующем каталоге или в пути: %windir%\system32\inetsrv.)

appcmd add site /name:string /id:uint /physicalPath:string /bindings:string

Переменная — это имя, а переменная name:stringid:uint — целое число без знака, которое вы хотите назначить сайту. Переменные name:string и id:uint являются единственными переменными, которые требуются при добавлении сайта в Appcmd.exe. (Примечание. При добавлении сайта без указания значений для привязок и атрибутов physicalPath сайт не сможет запуститься.)

Переменная physicalPath:string — это путь к содержимому сайта в файловой системе.

Переменная bindings:string содержит сведения, используемые для доступа к сайту, и он должен находиться в виде protocol/IP_address:port:host_header. Например, привязка веб-сайта — это сочетание протокола, IP-адреса, порта и заголовка узла. Привязка http/*:85: позволяет веб-сайту прослушивать HTTP-запросы через порт 85 для всех IP-адресов и доменных имен (также известных как заголовки узлов или имена узлов). С другой стороны, привязка http/*:85:marketing.contoso.com настраивает веб-сайт для прослушивания HTTP-запросов через порт 85 для всех IP-адресов и доменного имени marketing.contoso.com.

Чтобы добавить веб-сайт contoso с идентификатором 2, который имеет содержимое c:\contoso, и прослушивает HTTP-запросы через порт 85 для всех IP-адресов и доменного имени marketing.contoso.com, введите следующее в командной строке и нажмите ENTER.

appcmd add site /name: contoso /id:2 /physicalPath: c:\contoso /bindings:http/*:85: marketing.contoso.com

Шаг 3. Изменение параметров приложения ASP

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

Изменение параметров приложения ASP с помощью пользовательского интерфейса

  1. Откройте диспетчер IIS и перейдите к уровню, которому требуется управлять.
  2. В представлении компонентов дважды щелкните ASP.
  3. На странице ASP измените параметры по мере необходимости.
  4. По завершении нажмите кнопку "Применить " на панели "Действия ".

Изменение параметров приложения ASP с помощью командной строки

Указание набора символов по умолчанию

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

appcmd set config /section:asp /codePage:integerRange

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

appcmd set config /section:asp /codePage:1252

Включение или отключение буферизации

Чтобы включить или отключить буферизацию выходных данных приложения ASP, используйте следующий синтаксис:

appcmd set config /section:asp /bufferingOn:true|false

Значение true включает буферизацию, тогда как false отключает буферизацию. Значение по умолчанию — true.

Включить или отключить кодирование передачи фрагментами HTTP 1.1

Чтобы включить кодировку передачи с блоками HTTP 1.1 для службы веб-публикации World Wide Web, используйте следующий синтаксис:

appcmd set config /section:asp /enableChunkedEncoding:true|false

Значение true включает кодировку передачи с блоками HTTP 1.1, в то время как false отключает кодировку передачи HTTP 1.1. Значение по умолчанию — true.

Включение или отключение резервного варианта HTML

Чтобы включить или отключить резервную передачу HTML, используйте следующий синтаксис:

appcmd set config /section:asp /enableASPHTMLFallback:true|false

Значение true приводит к тому, что файл .htm с таким же именем, что и запрошенный файл .asp, если он существует, отправляется вместо файла .asp, если запрос отклонен из-за полной очереди запросов. Значение по умолчанию — true.

Включение или отключение родительских путей

Чтобы включить или отключить пути относительно текущего каталога или выше текущего каталога, используйте следующий синтаксис:

appcmd set config /section:asp /enableParentPaths:true|false

Значение true позволяет страницам ASP использовать пути, относительно текущего или вышестоящего каталога. Значение по умолчанию — true.

Настройка интервала тестирования подключения клиента

Чтобы задать интервал времени, после которого ASP проверяет, подключен ли клиент перед выполнением запроса, используйте следующий синтаксис:

appcmd set config /section:asp /queueConnectionTestTime:timeSpan

Переменная timeSpan задает интервал времени (hh:mm:ss), после которого ASP проверяет, подключен ли клиент перед выполнением запроса. Значение по умолчанию — 00:00:03.

Установить максимальный лимит тела сущности запроса

Чтобы указать максимальное число байтов, разрешенных в теле сущности запроса ASP, используйте следующий синтаксис:

appcmd set config /section:asp /maxRequestEntityAllowed:int

Переменная int представляет максимальное число байтов, разрешенных в тексте запроса ASP. Значение по умолчанию — 200000 байт.

Установка длины очереди запросов

Чтобы указать максимальное число одновременных запросов ASP, разрешенных в очередь, используйте следующий синтаксис:

appcmd set config /section:asp /requestQueueMax:int

Переменная int представляет максимальное количество одновременных запросов ASP, разрешенных в очередь запросов. Значение по умолчанию — 3000.

Задать таймаут очереди запросов

Чтобы указать период ожидания запроса ASP в очереди запросов, используйте следующий синтаксис:

appcmd set config /section:asp /queueTimeout:timeSpan

Переменная timeSpan представляет максимальное время (hh:mm:ss), которое запрос ASP может ожидать в очереди запросов. Значение по умолчанию — 00:00:00.

Указание ограничения буферизации ответов

Чтобы управлять максимальным числом байтов, которые страница ASP может записывать в буфер ответа до возникновения сброса, используйте следующий синтаксис:

appcmd set config /section:asp /bufferingLimit:int

Переменная int представляет максимальный размер буфера ASP в байтах. Значение по умолчанию — 4194304 байт.

Установка времени ожидания скрипта

Чтобы указать продолжительность по умолчанию, когда страницы ASP позволяют запускать скрипт перед завершением скрипта и записью события в журнал событий Windows, используйте следующий синтаксис:

appcmd set config /section:asp /scriptTimeout:timeSpan

Переменная timeSpan представляет максимальное время (hh:mm:ss), которое может выполняться запросОМ ASP перед записью события в журнал событий Windows. Значение по умолчанию — 00:01:30.

Задать предел потоков на процессор

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

appcmd set config /section:asp /processorThreadMax:int

Переменная int представляет максимальное количество рабочих потоков на процессор, которые может создать ASP. Значение по умолчанию — 25.

Укажите идентификатор языкового стандарта по умолчанию

Чтобы определить, как форматируются даты, время и валюты для приложения ASP, используйте следующий синтаксис:

appcmd set config /section:asp /lcid:int

Переменная int представляет идентификатор языкового стандарта по умолчанию для приложения ASP. Значение по умолчанию — 0.

Включение или отключение автоматического перезапуска приложения

Чтобы включить или отключить автоматическую перезагрузку приложений ASP при изменении параметра конфигурации, используйте следующий синтаксис:

appcmd set config /section:asp /enableApplicationRestart:true|false

Значение true позволяет приложениям ASP автоматически перезапускаться при изменении параметра конфигурации. Значение по умолчанию — true.

Включение или отключение вычисления номеров строк

Чтобы включить или отключить ASP для вычисления и хранения номера строк каждой выполняемой строки кода для предоставления номера в отчете об ошибке, используйте следующий синтаксис:

appcmd set config /section:asp /calLineNumber:true|false

Значение true включает возможность вычисления и сохранения номеров строк. Значение по умолчанию — true.

Включение или отключение перехвата исключений компонента COM

Чтобы включить или отключить страницы ASP для перехвата исключений, создаваемых компонентами COM, используйте следующий синтаксис:

appcmd set config /section:asp /exceptionCatchEnable:true|false

Значение true позволяет перехватывать исключения компонента COM. Если задано значение false, средство отладчика сценариев Майкрософт не перехватывает исключения, отправленные компонентом, который выполняется отладка. Значение по умолчанию — true.

Включение или отключение отладки на стороне клиента

Чтобы включить или отключить отладку на стороне клиента, используйте следующий синтаксис:

appcmd set config /section:asp /appAllowClientDebug:true|false

Значение true позволяет включить отладку на стороне клиента. Значение по умолчанию — false.

Включить или отключить запросы на журналирование ошибок

Чтобы включить или отключить запись ошибок ASP в раздел приложения журнала событий Windows, используйте следующий синтаксис:

appcmd set config /section:asp /logErrorRequests:true|false

Значение true включает запросы на запись ошибок. По умолчанию ошибки ASP записываются в клиентский браузер и журналы IIS. Значение по умолчанию — true.

Включение или отключение журналирования событий Windows ошибок ASP

Чтобы включить или отключить отладку ASP на сервере, используйте следующий синтаксис:

appcmd set config /section:asp /appAllowDebugging:true|false

Значение true позволяет выполнять отладку на стороне сервера для приложений ASP. Значение по умолчанию — false.

Анонимный запуск функций при завершении

Чтобы включить или отключить SessionOnEndApplicationOnEnd глобальные функции ASP для запуска от имени анонимного пользователя, используйте следующий синтаксис:

appcmd set config /section:asp /runOnEndAnonymously:true|false

Значение параметра true позволяет запускать глобальные функции SessionOnEnd и ApplicationOnEnd ASP от имени анонимного пользователя. Значение по умолчанию — true.

Задать сообщение об ошибке скрипта

Чтобы указать сообщение об ошибке для отправки в браузер, если определенные ошибки отладки не отправляются клиенту, используйте следующий синтаксис:

appcmd set config /section:asp /scriptErrorMessage:string

Переменная string представляет сообщение об ошибке, которое отправляется в браузер, когда определенные ошибки отладки не отправляются клиенту. Значение по умолчанию — "Произошла ошибка на сервере при обработке URL-адреса. Обратитесь к системному администратору.

Включение или отключение отправки ошибок в браузер

Чтобы включить или отключить запись специфики отладки (имя файла, ошибка, номер строки и описание) в браузер клиента, а также ведение журнала событий Windows, используйте следующий синтаксис:

appcmd set config /section:asp /scriptErrorSentToBrowser:true|false

Значение true позволяет записывать сведения об отладке в клиентском браузере. Значение по умолчанию — false.

Указание языка скриптов по умолчанию

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

appcmd set config /section:asp /scriptLanguage:string

Переменная string представляет язык скриптов по умолчанию. Значение по умолчанию — VBScript.

Указание пути к каталогу кэша

Чтобы указать имя каталога, в котором ASP хранит скомпилированные шаблоны ASP при переполнении кэша в памяти, используйте следующий синтаксис:

appcmd set config /section:asp /diskTemplateCacheDirectory:string

Переменная string представляет путь к каталогу кэша. Значение по умолчанию — %windir%\system32\inetsrv\ASP Compiled Templates.

Включить или отключить кэширование библиотеки типов

Чтобы включить или отключить кэширование библиотек типов, используйте следующий синтаксис:

appcmd set config /section:asp /enableTypelibCache:true|false

Значение true включает кэширование библиотек типов. Значение по умолчанию — true.

Задайте максимальное количество скомпилированных шаблонов ASP для хранения

Чтобы задать максимальное количество скомпилированных шаблонов ASP, которые можно сохранить, используйте следующий синтаксис:

appcmd set config /section:asp /maxDiskTemplateCacheFiles:int

Переменная int представляет максимальное количество скомпилированных шаблонов ASP для хранения. Значение по умолчанию — 2000.

Задайте максимальное количество скомпилированных шаблонов ASP для хранения

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

appcmd set config /section:asp /scriptFileCacheSize:int

Переменная int представляет количество предварительно скомпилированных файлов скриптов для кэширования. Если задано значение 0, файлы скриптов не кэшируются. Если задано значение 4294967295, кэшируются все запрошенные файлы скриптов. Значение по умолчанию — 500.

Задайте максимальное количество обработчиков сценариев для кэширования

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

appcmd set config /section:asp /scriptEngineCacheMax:int

Переменная int представляет максимальное количество обработчиков сценариев, кэшированных. Значение по умолчанию — 250.

Включение и отключение параллельных сборок COM+

Чтобы включить или отключить параллельные сборки COM+, позволяющие приложениям ASP указать версию системного DLL или классического COM-компонента, используйте следующий синтаксис:

appcmd set config /section:asp /appServiceFlags:true|false

Значение true включает параллельные сборки COM+. Значение по умолчанию — false.

Включение или отключение средства отслеживания COM+

Чтобы включить или отключить средство отслеживания COM+, используйте следующий синтаксис:

appcmd set config /section:asp /enableTypelibCache:true|false

Значение true включает средство отслеживания COM+, которое позволяет администраторам или разработчикам отлаживать приложения ASP. Значение по умолчанию — false.

Включение или отключение многопоточных сред

Чтобы включить или отключить ASP для запуска в многопоточной среде, используйте следующий синтаксис:

appcmd set config /section:asp /executeInMta:true|false

Значение true позволяет ASP выполняться в многопоточной среде. Значение по умолчанию — false.

Включение или отключение проверки модели потоков

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

appcmd set config /section:asp /trackThreadingModel:true|false

Значение true включает проверку модели потоков. Значение по умолчанию — false.

Укажите идентификатор раздела COM+

Чтобы указать глобальный уникальный идентификатор (GUID) секции COM+, используйте следующий синтаксис:

appcmd set config /section:asp /partitionID:string

Переменная string представляет GUID раздела COM+. Значение по умолчанию — 00000000-0000-0000-0000-000000000000.

Замечание

Кроме того, необходимо задать для флага appServiceFlags значение на true.

Указать приложение COM+

Чтобы указать имя приложения COM+, используйте следующий синтаксис:

appcmd set config /section:asp /sxsName:string

Переменная string представляет имя приложения COM+ .

Замечание

Кроме того, необходимо также установить флаг appServiceFlags на true.

Включение или отключение секционирования COM+

Чтобы включить или отключить секционирование COM+, используйте следующий синтаксис:

appcmd set config /section:asp /appServiceFlags:true|false

Значение true включает секционирование COM+, которое можно использовать для изоляции приложений в собственной секции COM+. Значение по умолчанию равно false.

Замечание

Если задано trueзначение, необходимо также задать значение для partitionID свойства.

Включение или отключение состояния сеанса

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

appcmd set config /section:asp /allowSessionState:true|false

Значение true включает сохраняемость состояния сеанса. Значение по умолчанию — true.

Установка максимального количества одновременных сеансов

Чтобы задать максимальное количество одновременных сеансов, которые позволяет ASP, используйте следующий синтаксис:

appcmd set config /section:asp /max:int

Переменная int представляет максимальное количество одновременных сеансов. Значение по умолчанию — -1.

Включение или отключение идентификатора безопасного сеанса

Чтобы включить или отключить отправку идентификатора сеанса как безопасного файла cookie, если он назначен по безопасному каналу сессии, используйте следующий синтаксис:

appcmd set config /section:asp /keepSessionIdSecure:true|false

Значение true включает безопасный идентификатор сеанса. Значение по умолчанию — true.

Установить тайм-аут сеанса

Чтобы указать время по умолчанию, которое поддерживает объект сеанса после последнего запроса, связанного с объектом, используйте следующий синтаксис:

appcmd set config /section:asp /timeout:timeSpan

Переменная timeSpan представляет максимальное время (hh:mm:ss), которое поддерживается объектом сеанса после последнего запроса, связанного с объектом. Значение по умолчанию — 00:20:00.

Дальнейшие шаги

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

См. также