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

Вайди Гопалакришнан

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

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

Локальное выполнение сайтов

При использовании IIS Express обычные пользователи могут запускать веб-сайты локально, используя не зарезервированные порты (порты больше 1024). Привязка веб-сайта по умолчанию для IIS Express — http://localhost:8080. По умолчанию WebMatrix и Бета-версия Visual Studio 2010 с пакетом обновления 1 (SP1) также настраивают веб-сайты для использования 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 с пакетом обновления 1 (SP1) бета-версии или с помощью исполняемого файла команды iisexpress.exe. Приложение windows в области уведомлений также позволяет пользователям просматривать и завершать работу IIS Express экземпляров.

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

Использование протокола 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.