Запуск 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.