Запуск IIS Express без прав администратора

Vaidy Gopalakrishnan

Служба IIS Express была разработана, чтобы обеспечить выполнение наиболее распространенных задач веб-разработки и тестирования без прав администратора. Это очень полезно в сценариях, когда разработчики не работают с правами администратора на своих компьютерах. Даже для администраторов эта функция устраняет всплывающее окно управления учетными записями (UAC) в Windows Vista и Windows 7 от прерывания рабочего процесса.

В этой статье объясняется, какие стандартные пользователи могут делать с помощью IIS Express и описывают задачи, которые ограничены администраторами.

Локальный запуск сайтов

С помощью IIS Express стандартные пользователи могут запускать веб-сайты локально с помощью не зарезервированных портов (портов больше 1024). Привязка веб-сайта по умолчанию для IIS Express — это http://localhost:8080. По умолчанию WebMatrix и Visual Studio 2010 с пакетом обновления 1 (SP1) Beta также настраивают веб-сайты для использования localhost и не зарезервированного порта.

В отличие от этого, права администратора необходимы для обслуживания содержимого для внешних запросов или использования зарезервированного порта, например 80 или 443.

Настройка веб-сайтов и приложений

Службы IIS и IIS Express используют applicationhost.config-файл , содержащий сведения о конфигурации на уровне сервера. При использовании IIS Express каждый пользователь владеет собственной копией applicationhost.config, что означает, что пользователь может добавлять сайты, удалять сайты, настраивать виртуальные каталоги и т. д. без специальных привилегий. IIS Express ищет файл applicationhost.config в папке пользователя "Документы" (например, %userprofile%\Documents\IISExpress\config в Windows 7). IIS Express также может использовать пользовательский файл applicationhost.config с помощью переключателя командной строки /config. Результатом является то, что не обязательно быть администратором для использования IIS Express с Visual Studio.

Так как IIS использует файл applicationhost.config на компьютере, который стандартные пользователи не могут изменять, эти задачи в IIS могут выполняться только администраторами. (Так как службы IIS обычно используются на серверных компьютерах, это обычно не ограничение с точки зрения отдельного разработчика.)

Запуск и остановка сайтов

С помощью IIS Express стандартный пользователь может по своему усмотрению запускать и останавливать свой веб-сервер. Это можно сделать с помощью WebMatrix и Visual Studio 2010 бета-версии SP1, или с помощью исполняемого файла команды iisexpress.exe. Приложение для системной области Windows также позволяет пользователям просматривать и завершать работу экземпляров IIS Express.

С помощью IIS пользователи не могут запускать свой веб-сайт напрямую. Вместо этого служба активации рабочего процесса (WAS) отвечает за активацию веб-сайтов. Так как IS является системной службой, только администраторы могут запускать или останавливать ее.

Использование SSL

Для настройки доступа через уровень безопасных сокетов (SSL) требуются административные привилегии в IIS Express, как и в службах IIS. Однако программа установки IIS Express выполняет следующие задачи, позволяющие стандартным пользователям использовать SSL с IIS Express:

  • Он автоматически создает и устанавливает самозаверяющий сертификат SSL-сервера в локальном хранилище компьютеров.
  • Он настраивает HTTP.SYS для резервирования портов 44300 до 44399 для SSL. Входящие SSL-запросы, использующие localhost и один из портов в указанном диапазоне, автоматически связываются с самозаверяющим сертификатом.

(HTTP.SYS — это компонент операционной системы, который обрабатывает ПРОТОКОЛ SSL для IIS и IIS Express. Программа установки может настроить HTTP.SYS, так как программа установки выполняется под повышенными привилегиями.)

Следовательно, использование SSL для тестирования веб-сайта с помощью IIS Express так же просто, как добавление привязки, как показано ниже, в элемент сайта в applicationhost.config:

<binding protocol="https" bindingInformation="*:44300:localhost" />

Это работает только для локального трафика (запросов localhost) и для указанного диапазона портов. Для настройки пользовательского SSL-сертификата или запуска SSL с помощью порта за пределами указанного диапазона требуются права администратора.

Сводка

IIS Express позволяет пользователям, не являясь администраторами, выполнять следующие задачи:

  • Запустите веб-сайт локально и используйте номер порта больше 1024.
  • Добавление, удаление и изменение веб-сайтов, приложений и виртуальных каталогов.
  • Запустите и остановите веб-сервер.
  • Добавьте поддержку SSL для тестирования веб-сайта с помощью предварительно установленного самозаверяющего SSL-сертификата и порта от 44300 до 44399.

Для выполнения следующих задач требуются права администратора:

  • Используйте зарезервированный порт, например 80 или 443.
  • Обслуживать запросы внешнего трафика.
  • Настройте пользовательский SSL-сертификат.
  • Запустите SSL с помощью порта вне диапазона от 44300 до 44399.