Несколько дней назад Джейсон Зандер (Jason Zander) написал в своем блоге о выходе Visual Studio 2010 SP1 Beta (ссылки ниже, в конце статьи). Я рад поделиться с вами, друзья, новостями о том, что SP1 Beta добавил возможность интеграции с IIS Express в Visual Studio. Для этой интеграции вам потребуется скачать IIS Express отдельно, после того как вы установите SP1 Beta. После загрузки и установки IIS Express вы получите возможность создавать веб-проекты и веб-сайты, использующие IIS Express вместо Cassini (веб-сервера, который используется в Visual Studio по умолчанию). Для того, чтобы узнать побольше о разнице между IIS Express и полноценным IIS или Cassini, пожалуйста ознакомьтесь с записью блога Скотта Гатри, ссылка на которую приложена в конце статьи. Visual Studio 2010 предлагает два варианта веб-проектов: проект Web Application Project (WAP) и проект Website. Вы можете использовать оба типа проектов с IIS Express.
Проекты обоих типов (WAP и Website), которые ранее использовали Cassini, могут легко использовать IIS Express. Вам достаточно выбрать из контекстного меню “Use IIS Express” опцию “Use IIS Express”. Взгляните на скриншот, который демонстрирует эту команду.
После выполнения этой команды ваш проект будет использовать IIS Express вместо Cassini. Для того, чтобы вернуться обратно на Cassini вам нужно будет выполнить команду “Use Visual Studio Development Server…” в том же самом контекстном меню. Кроме того, вы можете сделать IIS Express вашим сервером по умолчанию для всех новых проектов.
Во время создания проектов типа Website вы можете указать использовать IIS Express вместо Cassini. Когда вы выполните File->New-> Web Site вы увидите обновленный диалог New Web Site. В этом окне вам необходимо нажать кнопку Browse (смотрите на скриншотах ниже).
После этого вам будет предложен выбор местоположения того, где должен размещаться ваш сайт. Здесь вы можете выбрать “Local IIS” и создать сайт в IIS Express.
В этом окне вам необходимо выбрать пункт “IIS Express Sites” и нажать кнопку “Create New Site” в правом верхнем углу. Выполнив эту команду вы создадите для своего проекта сайт в IIS Express.
Для того, чтобы задать IIS Express сервером по умолчанию для всех новых веб-проектов, вам необходимо перейти в меню Visual Studio по пути Tools->Options->Projects and Solutions->Web Projects и выделить пункт “Use IIS Express for new file-based web sites and projects”. На картинке ниже представлен этот пункт меню.
После установке этого значения, все новые веб-проекты и сайты будут использовать IIS Express по умолчанию. Замечание: все уже созданные ранее проекты, работающие на Cassini потребуется перевести на IIS Express вручную.
После того, как вы включите для проектов использование IIS Express и запустите проект на выполнение или начнете его отладку из Visual Studio, вы увидите появление новой иконки в панели уведомлений (трей) Windows. Вы можете щелкнуть на иконке правой кнопкой мыши для того, чтобы быстро получить список всех запущенных с помощью IIS Server приложений. У каждого такого приложения есть свое контекстное меню, через которое вы можете запустить приложение в браузере или остановить его выполнение на сервере.
Вы можете выбрать пункт “Show All Applications” для того, чтобы открыть окно со списком всех запущенных на IIS Express проектов. Ниже пример такого окна.
Ниже перечислены важные параметры доступные в этом окне:
Что касается времени среды исполнения, это версия CLR, которую будет использовать пул приложения. Для пулов приложений в IIS Express по умолчанию используется CLR 4.0. Вы можете изменить это поведение по умолчанию в настройках applicationHost.config вашего IIS Express. Visual Studio присваивает версию CLR на основе параметров приложения.
Вы можете указать несколько опций вашего веб-приложения прямо в Visual Studio. Если вы выберете пункт Properties в контекстном меню Solution Explorer, то увидите что-то похожее на следующий скриншот.
Эти параметры изменяют порядок того, как IIS Express будет запускать ваше приложение. Одной из самых важных возможностей, которой не было в Cassini, является поддержка SSL. В IIS Express такая поддержка есть. Например, для сайта я изменил значение параметра “SSL Enabled” в True и получил новый URL, присвоенный сайту, так что теперь я могу посетить его с поддержкой SSL. Обратите внимание, что IIS Express устанавливает собственный сертификат и в браузерах вы получите предупреждение системы безопасности.
Еще одна важная вещь о которой следует знать: когда вы меняете настройки для запуска IIS Express, то они сохраняются в файле applicationHost.config для IIS Express но не в самом проекте. Так что, если вы работаете в команде, то ваши коллеги должны повторить эти настройки у себя.
Для редактирования настроек, которые не показываются в приведенном окне вам необходимо редактировать applicationHost.config напрямую. Вы можете легко получить доступ к нужному файлу перейдя по ссылке в окне IIS Express (Show All Applications). Для проектов типа WAP вы сможете изменить таким образом порт, который используется IIS Express.
Пока в работе IIS Express существует ряд ограничений:
Настройка веб-проектов на использование IIS Express
Проекты обоих типов (WAP и Website), которые ранее использовали Cassini, могут легко использовать IIS Express. Вам достаточно выбрать из контекстного меню “Use IIS Express” опцию “Use IIS Express”. Взгляните на скриншот, который демонстрирует эту команду.
После выполнения этой команды ваш проект будет использовать IIS Express вместо Cassini. Для того, чтобы вернуться обратно на Cassini вам нужно будет выполнить команду “Use Visual Studio Development Server…” в том же самом контекстном меню. Кроме того, вы можете сделать IIS Express вашим сервером по умолчанию для всех новых проектов.
Во время создания проектов типа Website вы можете указать использовать IIS Express вместо Cassini. Когда вы выполните File->New-> Web Site вы увидите обновленный диалог New Web Site. В этом окне вам необходимо нажать кнопку Browse (смотрите на скриншотах ниже).
После этого вам будет предложен выбор местоположения того, где должен размещаться ваш сайт. Здесь вы можете выбрать “Local IIS” и создать сайт в IIS Express.
В этом окне вам необходимо выбрать пункт “IIS Express Sites” и нажать кнопку “Create New Site” в правом верхнем углу. Выполнив эту команду вы создадите для своего проекта сайт в IIS Express.
Установка IIS Express сервером по умолчанию
Для того, чтобы задать IIS Express сервером по умолчанию для всех новых веб-проектов, вам необходимо перейти в меню Visual Studio по пути Tools->Options->Projects and Solutions->Web Projects и выделить пункт “Use IIS Express for new file-based web sites and projects”. На картинке ниже представлен этот пункт меню.
После установке этого значения, все новые веб-проекты и сайты будут использовать IIS Express по умолчанию. Замечание: все уже созданные ранее проекты, работающие на Cassini потребуется перевести на IIS Express вручную.
Использование IIS Express
После того, как вы включите для проектов использование IIS Express и запустите проект на выполнение или начнете его отладку из Visual Studio, вы увидите появление новой иконки в панели уведомлений (трей) Windows. Вы можете щелкнуть на иконке правой кнопкой мыши для того, чтобы быстро получить список всех запущенных с помощью IIS Server приложений. У каждого такого приложения есть свое контекстное меню, через которое вы можете запустить приложение в браузере или остановить его выполнение на сервере.
Вы можете выбрать пункт “Show All Applications” для того, чтобы открыть окно со списком всех запущенных на IIS Express проектов. Ниже пример такого окна.
Ниже перечислены важные параметры доступные в этом окне:
- URL каждого приложения;
- версия среды выполнения для каждого приложения;
- путь к приложению на диске;
- путь к файлу настроек applicationHost.config.
Что касается времени среды исполнения, это версия CLR, которую будет использовать пул приложения. Для пулов приложений в IIS Express по умолчанию используется CLR 4.0. Вы можете изменить это поведение по умолчанию в настройках applicationHost.config вашего IIS Express. Visual Studio присваивает версию CLR на основе параметров приложения.
Вы можете указать несколько опций вашего веб-приложения прямо в Visual Studio. Если вы выберете пункт Properties в контекстном меню Solution Explorer, то увидите что-то похожее на следующий скриншот.
Эти параметры изменяют порядок того, как IIS Express будет запускать ваше приложение. Одной из самых важных возможностей, которой не было в Cassini, является поддержка SSL. В IIS Express такая поддержка есть. Например, для сайта я изменил значение параметра “SSL Enabled” в True и получил новый URL, присвоенный сайту, так что теперь я могу посетить его с поддержкой SSL. Обратите внимание, что IIS Express устанавливает собственный сертификат и в браузерах вы получите предупреждение системы безопасности.
Еще одна важная вещь о которой следует знать: когда вы меняете настройки для запуска IIS Express, то они сохраняются в файле applicationHost.config для IIS Express но не в самом проекте. Так что, если вы работаете в команде, то ваши коллеги должны повторить эти настройки у себя.
Для редактирования настроек, которые не показываются в приведенном окне вам необходимо редактировать applicationHost.config напрямую. Вы можете легко получить доступ к нужному файлу перейдя по ссылке в окне IIS Express (Show All Applications). Для проектов типа WAP вы сможете изменить таким образом порт, который используется IIS Express.
Известные ограничения
Пока в работе IIS Express существует ряд ограничений:
- отсутствует поддержка профилирования;
- If you add a Web Deployment Project (WDP) to an IIS Express web site you will have to remove the ‘:’ from the name of the WDP;
- Some issues using WDP for IIS Express sites with sub-webs.