Visual studio iis настройка
Несколько дней назад Джейсон Зандер (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.
Настройка веб-проектов на использование 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
Для установки служб IIS, возможно, потребуется перезагрузить компьютер.
Настройка IIS
В службах IIS нужно настроить веб-сайт со следующими характеристиками:
Включение поддержки служб IIS в Visual Studio во время разработки
Запустите установщик Visual Studio.
Выберите Изменить в установщике программы Visual Studio, которую планируется использовать для поддержки IIS во время разработки.
Настройка проекта
Профиль запуска служб IIS
Создайте новый профиль запуска, чтобы добавить поддержку IIS во время разработки.
В обозревателе решений щелкните проект правой кнопкой мыши. Выберите пункт Свойства. Откройте вкладку Отладка.
В поле Запуск выберите из списка значение IIS.
Установите флажок Запуск браузера и укажите URL-адрес конечной точки.
Укажите то же имя узла и тот же порт, как в выполненной ранее настройке IIS. Обычно это localhost .
Укажите имя приложения в конце URL-адреса.
В разделе Переменные среды нажмите кнопку Добавить. Для переменной среды задайте имя ASPNETCORE_ENVIRONMENT и значение Development .
В области Параметры веб-сервера в поле URL-адрес приложения задайте значение, соответствующее URL-адресу конечной точки в поле Запуск браузера.
В Visual Studio 2019 и последующих версиях параметру Модель размещения задайте значение По умолчанию, чтобы использовать модель размещения проекта. Если для проекта задано свойство в файле проекта, используется значение свойства InProcess или OutOfProcess . Если свойство не задано, используется модель размещения приложения по умолчанию In Process. Если приложению требуется явно указать модель размещения, отличную от обычной модели размещения приложения, задайте параметру Модель размещения значение In Process или Out Of Process по необходимости.
Запуск проекта
Запустите Visual Studio от имени администратора.
- Убедитесь, что для раскрывающегося списка с конфигурацией сборки построения выбрано значение Отладка.
- Настройте кнопку Начать отладку на профиль IIS и нажмите ее для запуска приложения.
Если вы вошли в Visual Studio без прав администратора, возможно, потребуется перезапуск. Перезапустите Visual Studio при появлении соответствующего запроса.
Если используется сертификат разработки без доверия, возможно, потребуется создать исключение для этого ненадежного сертификата по запросу в браузере.
Отладка конфигурации сборки выпуска с использованием функции Только мой код и оптимизации компилятора приводит к ограничению возможностей. Например, точки останова не будут достигнуты.
Дополнительные ресурсы
Предварительные требования
Активация IIS
Для установки служб IIS, возможно, потребуется перезагрузить компьютер.
Настройка IIS
В службах IIS нужно настроить веб-сайт со следующими характеристиками:
Включение поддержки служб IIS в Visual Studio во время разработки
Запустите установщик Visual Studio.
Выберите Изменить в установщике программы Visual Studio, которую планируется использовать для поддержки IIS во время разработки.
Настройка проекта
Профиль запуска служб IIS
Создайте новый профиль запуска, чтобы добавить поддержку IIS во время разработки.
В обозревателе решений щелкните проект правой кнопкой мыши. Выберите пункт Свойства. Откройте вкладку Отладка.
В поле Запуск выберите из списка значение IIS.
Установите флажок Запуск браузера и укажите URL-адрес конечной точки.
Укажите то же имя узла и тот же порт, как в выполненной ранее настройке IIS. Обычно это localhost .
Укажите имя приложения в конце URL-адреса.
В разделе Переменные среды нажмите кнопку Добавить. Для переменной среды задайте имя ASPNETCORE_ENVIRONMENT и значение Development .
В области Параметры веб-сервера в поле URL-адрес приложения задайте значение, соответствующее URL-адресу конечной точки в поле Запуск браузера.
В Visual Studio 2019 и последующих версиях параметру Модель размещения задайте значение По умолчанию, чтобы использовать модель размещения проекта. Если для проекта задано свойство в файле проекта, используется значение свойства InProcess или OutOfProcess . Если свойство не задано, используется модель размещения приложения по умолчанию Out Of Process. Если приложению требуется явно указать модель размещения, отличную от обычной модели размещения приложения, задайте параметру Модель размещения значение In Process или Out Of Process по необходимости.
Запуск проекта
Запустите Visual Studio от имени администратора.
- Убедитесь, что для раскрывающегося списка с конфигурацией сборки построения выбрано значение Отладка.
- Настройте кнопку Начать отладку на профиль IIS и нажмите ее для запуска приложения.
Если вы вошли в Visual Studio без прав администратора, возможно, потребуется перезапуск. Перезапустите Visual Studio при появлении соответствующего запроса.
Если используется сертификат разработки без доверия, возможно, потребуется создать исключение для этого ненадежного сертификата по запросу в браузере.
Отладка конфигурации сборки выпуска с использованием функции Только мой код и оптимизации компилятора приводит к ограничению возможностей. Например, точки останова не будут достигнуты.
В начале сконфигурируем веб-сервер. Для этого откроем средство администрирования IIS: зайдем в Панель управления, затем выберем Администрирование->Диспетчер служб IIS. И нам откроется консоль управления IIS:
Будем размещать свой сайт в узле по умолчанию (в моем случае это Default Web Site). И для этого вначале создадим в каталоге этого узла папку для нашего приложения. По умолчанию каталогом для стандартного веб-узла является каталог C:\inetpub\wwwroot. Перейдем в нее и создадим в нем папку BookStore, которая будет содержать наше приложение.
Теперь нажмем правой кнопкой мыши на имя узла по умолчанию и выберем в появившемся меню пункт Добавить приложение :
В появившемся окне введем соответствующие настройки (в качестве физического пути приложения созданный выше каталог):
Сайт у нас практически создан. Теперь осталось разместить в каталоге C:\inetpub\wwwroot\BookStore наше приложение.
Перейдем к приложению в Visual Studio. Нажмем правой кнопкой на название проекта и в появившемся меню выберем Publish :
Перед нами откроется мастер публикации, который предложит нам пройти несколько этапов. В начале выберем профиль:
Если не одного профиля не определено, то создадим, нажав на ссылку New. и выбрав какое-нибудь название.
После создания профиля нажмем на Next и перейдем к следующему этапу - Connection. На этом этапе для опции Publish Method выберем File System
Для опции Target Location определим физический путь к каталогу нашего сайта. В данном случае это путь C:\inetpub\wwwroot\BookStore.
В этом случае нам надо открыть доступ к папке C:\inetpub\wwwroot\BookStore на запись (по умолчанию стоит доступ только на чтение) и повторить публикацию.
Либо как вариант, если мы не хотим раскрывать доступ на запись, то можно вручную скопировать и перенести все необходимые файлы в указанную выше папку. Как нам показывает окно Output, все файлы для публикации сохраняются в проекте в каталоге obj\Release\Package\PackageTmp. И мы можем просто скопировать все файлы из этого каталога и перенести их в каталог C:\inetpub\wwwroot\BookStore.
Если мы при создании веб-приложения использовали движок базы данных localdb, то нам надо разместить базу данных на MS SQL Servere и соответсвенно изменить строку подключения к базе данных, чтобы использовать уже не localdb, который предназначен только для целей разработки, а MS SQL Server.
После завершения работы над приложением приложение его можно опубликовать, чтобы оно стало доступно широкому кругу пользователей. Как правило, для хостирования приложения будет применяться один из внешних хостингов, список которых можно посмотреть здесь. В данном же случае рассмотрим основные моменты публикации и развертывания приложения на локальном компьютере.
При разработке в Visual Studio публиковать приложения очень легко - среда разработки имеет для этого весь необходимый инструментарий. Так, возьмем какой-нибудь проект и в Visual Studio нажмем на него правой кнопкой мыши и в появившемся контекстном меню выберем пункт Publish :
И перед нами откроется окно публикации приложения:
Здесь нам доступно несколько вариантов публикации:
Microsoft Azure App Service : публикация в облаке Azure
IIS, FTP, etc : публикация через FTP
Folder : публикация в виде отдельного пакета в файловой системе текущей рабочей машины
Import Profile : импорт профиля, который содержит настройки публикации
Microsoft Azure Virtual Machines : публикация в облаке Azure, по сравнению с первой опцией обладает большими возможностями по управлению инфраструктурой развертывания
В данном случае выберем опцию Folder для создания пакета для публикации в файловой системе. И также укажем путь, по которому будет находиться пакет. В моем случае это каталог "C:\CoreApp". И в конце нажмем на кнопку Publish.
Далее откроется окно, где будут оображаться выбранные настройки конфигурации, и для продолжения публикации нажмем в нем кнопку Publish:
И после окончания публикации по указанному пути (в моем случае это каталог C:\CoreApp) появятся опубликованные файлы.
Настройка IIS
Прежде всего нам надо включить функциональность Web Server (IIS) и настроить роли сервера. Для этого перейдем по пути Панель управления -> Программы и компоненты -> Включение или отключение компонентов Windows . В списке компонентов найдем Службы IIS (Internet Information Services) и отметим ее:
Здесь также надо отметить подпункт "Службы Интернета" (World Wide Web Services) и все его подпункты, а также подпункт "Консоль управления IIS" (IIS Management Console).
Нажмем на ОК, и весь необходимый функционал будет добавлен в операционную систему.
После установки этого пакета выполним в командной строке команду iisreset или вручную перезапустим IIS, чтобы сервер применил изменения.
Конфигурация сервера
Для конфигурации IIS перейдем к консоли управления веб-сервером. Для этого перейдем по пути Панель управления -> Администрирование -> Диспетчер служб IIS :
Нажмем правой кнопкой на узел "сайты" и в контекстном меню выберем пункт "Добавить веб-сайт. ". После этого нам откроется окно для добавления нового сайта:
В поле "Физический путь" здесь укажем каталог, в котором опубликовано приложение. А в качестве имени узла определим "localhost". Нажмем на OK, и приложение будет запущено.
Теперь перейдем к пункту Пулы приложений . Выберем пул нашего приложения и справа нажмем на ссылку Основные настройки :
После этого пул будет перезапущен, и мы сможем обращаться к нашему приложению по адресу localhost.
Сконфигурируйте IIS так, как того требует приложение. Создайте необходимые пулы приложений, сделайте каталог приложения доступным для совместного использования в качестве виртуального каталога и должным образом сконфигурируйте виртуальный каталог.
Установите права учетной записи Windows для пользователя рабочего процесса. Пользователь, от имени которого запускается рабочий процесс (w3wp.exe), нуждается в доступе для чтения к каталогам приложения. Если приложение обращается к другим ресурсам, например, к системному реестру или к журналу событий, для учетной записи рабочего процесса понадобится сконфигурировать разрешение на доступ к этим ресурсам.
В некоторых случаях необходимо также модифицировать файл machine.config. Например, если работа выполняется в среде веб-хостинга, а в целях балансировки нагрузки приложение работает на множестве веб-серверов, необходимо синхронизировать любые ключи шифрования, используемые для шифрования мандатов аутентификации с помощью форм или состояния представления на всех этих компьютерах. Эти ключи хранятся в файле machine.config и должны быть одинаковыми на каждом компьютере веб-фермы с тем, чтобы один компьютер мог расшифровать информацию, зашифрованную другим компьютером, ранее обрабатывавшим запрос.
Основная задача связана с развертыванием содержимого приложения на сервере IIS 8. В этой статье предполагается наличие у вас прав администратора и вход в систему сервера от имени учетной записи администратора. Если используется разделяемый сервер или поставщик услуг хостинга, то поставщик пришлет сведения об учетной записи, которая должна применяться при развертывании веб-сайта. Для простоты мы будем считать, что работа выполняется с учетной записью администратора, но при управлении собственным сервером следует подумать об использовании менее привилегированной учетной записи.
Развертывание посредством копирования файлов
Простейший способ развертывания веб-сайта предусматривает копирование файлов с рабочей станции на сервер. Несмотря на простоту, этот подход требует наличия непосредственного доступа к серверу. Именно по этой причине некоторые IT-подразделения и компании, предоставляющие услуги хостинга, не поддерживают эту опцию. Но она может быть простейшей при управлении собственным сервером или наличии особых договоренностей с компанией хостинга.
Подготовка IIS
Прежде чем развертывать веб-сайт, нужно подготовить IIS. Главное решение, которое нужно принять, касается места размещения содержимого и его влияния на конечный URL-адрес. Начнем с очевидного подхода - предположим, что необходимо, чтобы URL-адрес для содержимого данного примера был следующим:
IIS нужно подготовить так, чтобы было куда скопировать наш файл. В IIS Manager выберите элемент Default Web Site. Как следует из его имени, это сайт по умолчанию на сервере. Щелкните на нем правой кнопкой мыши и в контекстном меню выберите пункт Explore (Проводник), чтобы отрыть окно проводника Windows для заданного по умолчанию каталога IIS, которым является inetpub\wwwroot на системном томе (как правило, C:\).
Создайте каталог WebsiteDeployment, а в нем - каталог FileCopy (чтобы обеспечить существование пути inetpub\wwwroot\WebsiteDeployment\FileCopy). Закройте окно проводника, чтобы вернуться в IIS Manager. Щелкните правой кнопкой на записи Default Web Site и в контекстном меню выберите пункт Refresh (Обновить), чтобы увидеть новый каталог.
Веб-сайт
Развертывание веб-сайта
При использовании этой методики развертывания нужно просто скопировать файлы в созданный каталог. Переместите файлы веб-сайта на сервер любым подходящим способом - посредством общего сетевого диска, съемного диска USB и т.п. - и скопируйте файлы Default.aspx и Default.aspx.cs в каталог FileCopy, созданный на сервере.
Когда файлы будут скопированы, вернитесь в окно IIS Manager на сервере, щелкните правой кнопкой на папке FileCopy в древовидном представлении и в контекстном меню выберите пункт Refresh. В нижней части экрана щелкните на кнопке Content View (Просмотр содержимого). В центральной части окна должны отобразиться два файла веб-сайта, как показано на рисунке ниже:
В этом состоит наиболее важная часть этой технологии развертывания - вначале должна быть создана структура каталогов, которая представляет необходимый URL-адрес, а затем в готовые каталоги копируются файлы веб-сайта. Посмотрим, как это выглядит на практике. Для этого выберите FileCopy в IIS Manager и щелкните на ссылке Browse (Обзор) в правой части окна. Откроется веб-браузер с загруженным URL-адресом созданной папки. Окно браузера должно выглядеть подобно показанному на рисунке ниже:
Взглянув на URL-адрес адрес, можно удостовериться в том, что был получен желаемый результат. Браузер загрузил веб-сайт из следующего адреса:
Вспомните, что localhost - это специальное имя, обозначающее текущий компьютер, а URL-адрес, в котором не указан порт, будет использовать порт 80. (В моем случае я переместил сайт на порт 8080 по причинам, указанным в предыдущей статье). Можете проверить это, направив браузер по следующему URL-адресу:
Результат будет полностью аналогичен предыдущему (professorweb в данном случае имя сервера).
Конфигурирование развертывания
Вернитесь в браузер и перезагрузите страницу.
Откроется диалоговое окно Add Application (Добавление приложения). Используемый пул приложений можно изменить, щелкнув на кнопке Select (Выбрать). Настроить учетную запись пользователя, которую IIS будет применять для доступа к содержимому сайта, можно с помощью кнопок Connect as. (Подкл. как. ) и Test Settings. (Тест настроек. ). Пока что просто щелкните на кнопке ОК. Возможно, придется выбрать пункт Refresh (Обновить) в меню View (Вид) (или, как это часто имеет место, закрыть и снова открыть IIS Manager), но теперь значок записи FileCopy в древовидном представлении должен измениться.
Развертывание с помощью Visual Studio
Visual Studio предлагает встроенные возможности для упрощения развертывания веб-приложений, что облегчает задачу проектирования сложных веб-сайтов. Visual Studio включает в себя функции, которые интегрируются с IIS и позволяют создавать виртуальные каталоги, не выходя из комфортной среды разработки. Visual Studio предлагает несколько возможностей для интеграции с IIS:
Вы можете создавать виртуальный каталог при создании нового проекта.
Вы можете использовать функцию Copy Web Site (Копировать веб-сайт) для передачи существующего веб-сайта в виртуальный каталог.
Вы можете использовать функцию Publish Web Site чтобы скомпилировать свой сайт и передать его по новому адресу.
Создание виртуального каталога для нового веб-сайта
При создании веб-сайта в Visual Studio, вы можете одновременно создать виртуальный каталог для этого веб-сайта. Если вы сделаете это, Visual Studio не будет использовать встроенный тестовый сервер IIS Express. Вместо этого, все ваши запросы будут обрабатываться полной версией IIS.
Такой подход не является лучшим т.к. вы не сможете настроить некоторые параметры, такие как страницы по умолчанию, пользовательские ошибки и т.п. Вместо создания нового виртуального каталога с помощью Visual Studio лучше будет выбрать существующий каталог IIS, который в свою очередь можно сконфигурировать с помощью IIS Manager. Для этого щелкните по кнопке Browse (Обзор) и выберите нужный виртуальный каталог:
В этом окне вы можете добавить или удалить виртуальный каталог используя кнопки вверху справа.
Копирование веб-сайта
Visual Studio также включает в себя быстрый и простой способ для передачи файлов веб-приложения. Вам просто нужно выбрать в меню WebSite --> Copy Web Site. Откроется новое диалоговое окно Visual Studio, которое покажется знакомым любому, кто имел дело с различными IDE-программами для работы с сайтами, такими как Dreamweaver или Expression Web:
Это окно состоит из двух списков файлов. Слева находятся файлы в текущем проекте (на локальном жестком диске). Справа находятся файлы на целевом месте (удаленный веб-сервер). При первом открытии этого окна вы ничего не увидите справа, потому что вы не указали цель. Вы должны нажать кнопку Connect вверху, чтобы предоставить эту информацию. При этом Visual Studio откроет знакомое диалоговое окно, которое выглядит почти так же, как то, что вы видели при создании виртуального каталога для нового проекта. В этом окне вы можете выбрать одно из мест, куда нужно копировать веб-сайт:
File System
Это самый простой выбор - вы копируете файлы сайта внутри текущей файловой системы.
Local IIS
Позволяет выбирать виртуальные каталоги локального сервера IIS. Это удобно если сайт нужно будет разместить в другом каталоге.
FTP Site
Обеспечивает доступ к удаленному сайту через FTP. Многие хостинг-провайдеры предлагают доступ к сайтам через FTP, так что благодаря этой настройке вы можете сразу разворачивать свой сайт на удаленном веб-сервере, не прибегая к услугам различных FTP-программ наподобие TotalCommander:
Эта опция предлагает подключение к сайту по URL-адресу с использованием расширения FrontPage Extensions.
Как только вы выберите соответствующий пункт назначения, нажмите кнопку Open. Visual Studio попытается подключиться к удаленному сайт и получить список файлов.
Читайте также: