Не так давно вышла бета версия Visual Studio 2010 Service Pack 1. Среди прочих перечня дополнений и исправлений есть одно, не менее интересное чем новый Help Viewer. Это поддержка давно анонсированного, но все еще не вышедшего IIS Express. Давайте посмотрим подробнее.
А для чего IIS Express вообще нужен?
Действительно, зачем? Ведь в Visual Studio 2010 есть интегрированный веб-сервер для отладки. С другой стороны есть сам IIS 7. На что нацелена Express версия?
Конечно, встроенный веб-сервер Visual Studio имеет свои плюсы. Например, работа без администраторских привилегий, интеграция с средой разработки и невозможность подключиться к нему удаленно. Однако у него отсутствует поддержка многих возможностей полноценного веб-сервера: SSL, URL Rewriting Rules, пользовательских безопасности и т.д.
Решением может стать установка IIS 7. Это обеспечит поддержку всех нужных возможностей. Но при этом потребуются администраторские привилегии. А далеко не везде политика безопасности организаций это допускает. Кроме того, IIS 7 нельзя установить на компьютерах с Windows XP. В этом случае придется ограничиться IIS 5.1, что может не обеспечить все нужные функции. Кроме того, "легким" (для целей разработки) IIS не назовешь. А его запуск и остановка требуют дополнительных действий.
Вот тут и приходит IIS Express, сочетая в себе плюсы обоих вариантов:
- легкий и быстро устанавливаемый (менее 10 Мб);
- для работы не нужны администраторские привилегии;
- поддерживает все возможности IIS 7.x: SSL, URL Rewriting Rules, поддержка Media и т.д.
- может быть запущен на одном компьютере с интегрированным сервером и IIS;
- требует для работы Windows XP и выше, при этом предоставляя возможности IIS 7 на всех ОС;
- по умолчанию использует только локальные порты;
- интегрируется с Visual Studio 2010.
Установка
Раньше IIS Express был доступен как часть среды WebMatrix. В интернет можно было найти даже инструкции как "вырезать" его оттуда и встроить в Visual Studio.
Больше нет в этом необходимости, т.к. IIS Express Beta 3 доступен как самостоятельное приложение. Достаточно загрузить программу установки со страницы
http://www.microsoft.com/web/gallery/install.aspx?appid=iisexpress
и через несколько минут IIS Express будет развернут на компьютере разработчика. В данный момент доступна только x86 версия, которая работает и под Win64 через механизм WoW64.
После установки никаких новых пунктов в меню не добавляется. Все управление – в файлах конфигурации и внутри Visual Studio, разумеется при условии, что Service Pack 1 уже установлен.
Создание нового веб-сайта
Установка как сервер по умолчанию для новых проектов
IIS Express возможно установить как сервер по умолчанию для всех создаваемых проектов в Visual Studio 2010. Для этого, используя меню, необходимо открыть Tools –> Options –> Projects and Solutions –> Web Projects и отметить опцию "Use IIS Express for new file-based web sites and projects".

Указание расположения нового сайта
Так же, при создании нового веб-сайта можно сразу расположить его на IIS Express, как и в случае с обычным IIS 7. Для этого, в диалоге New Web Site, достаточно выбрать HTTP в качестве места расположения и нажать кнопку Browse. В открывшемся диалоге в разделе Local IIS будет список существующих IIS Express сайтов. Остаётся только выбрать нужное расположение.

Зарегистрировать новый сайт можно, добавив запись в файл applicationhost.config расположенный в папке [Documents текущего пользователя]\IISExpress\config. Для этого необходимо найти секцию <sites> и добавить новый подраздел <site>. Формат данного файла один в один повторяет формат файла настройки IIS.
Обратите внимание на место хранения настроек (папка документов конкретного пользователя). В отличии от настроек IIS, они являются персональными для каждого пользователя компьютера и не требуют администраторских привилегий при работе с ними.
Подключение IIS Express к существующему проекту
Задействовать IIS Express в уже созданном очень просто. Для этого нужно всего несколько щелчков мышкой: открыть контекстное меню проекта правой кнопкой и выбрать пункт "Use IIS Express" левой. Кстати, обратный переход аналогичен, только пункт меню заменяется на "Use Visual Studio development server".

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

Так же, при выбранном проекте и подключенном IIS Express в окне Properties можно увидеть и изменить некоторые настройки сервера. Здесь можно изменить настройки SSL, запуска, авторизации и конвейера:

Запускаем IIS Express
Как видно из описания выше, установка и подключение к проекту не вызывает никаких трудностей. Теперь запустим проект. В области нотификации будет выведена иконка IIS Express.

Открывающееся меню достаточно лаконично, но при этом вполне достаточно. Кроме того, при работающем сервере доступно окно, в котором отображены все подробности запущенных веб-сайтов. Для его просмотра необходимо выбрать пункт "Show All Applications".

Как можно заметить, запущенный сайт доступен как по HTTP, так и по HTTPS протоколу. Кроме того, отображены следующие данные:
- URL для каждого запущенного веб-сайта;
- родительский процесс;
- версия run-time;
- место, где расположено веб-приложение
- путь до файла applicationHost.config.
Так же стоит отметить, что Visual Studio самостоятельно устанавливает версию run-time в зависимости от настроек запускаемого проекта.
Немного фактов про IIS Express
- Сервер поддерживает практически все версии .NET Framework: 2.0, 3.0, 3.5 и 4.0.
- Распространение в составе проектов для IIS Express beta 3 запрещено. Но данный вопрос еще будет рассматриваться до момента выхода финальной версии.
- IIS Express для работы SSL устанавливает самоподписанный сертификат. Поэтому при доступе через HTTPS браузеры будут выдавать предупреждающее сообщение.
- Есть некоторые операции, требующие администраторских привилегий:
- запуск сайта на 80 и прочих стандартных портах;
- установка своего SSL сертификата;
- разрешение доступа к сайтам из локальной сети.
- Сервер поддерживает запуск из командной строки. Её параметры доступны в документации.
- Поддерживаются только HTTP и HTTPS протоколы. Поэтому для WCF over MSMQ и net.tcp по прежнему нужен IIS 7.
- Поддержи FTP нет (да и к чему она).
- IIS Express не поддерживает запуск SharePoint Foundation 2010, но может работать с ним на одном компьютере. Так же как он может быть запущен на одном компьютере с любым другим веб-сервером до тех пор, пока нет конфликта привязки к портам. Для этого по умолчанию IIS Express использует порт 8080, а Visual Studio назначает порт самостоятельно.
- Разворачивание IIS Express при помощи x-copy пока официально не поддерживается. Однако и в данный момент можно перенести сервер простым копированием.