Поддержка служб IIS во время разработки в Visual Studio для ASP.NET Core

Автор Сурабх Ширхатти

В этой статье описаны поддерживаемые в Visual Studio возможности для отладки приложений ASP.NET Core, выполняющихся в службах IIS в Windows Server. Также здесь приведены пошаговые инструкции по включению этого сценария и настройке проекта.

Необходимые компоненты

  • Visual Studio для Windows
  • Рабочая нагрузка ASP.NET и веб-разработка
  • Рабочая нагрузка Кроссплатформенная разработка .NET Core
  • Сертификат безопасности X.509 (для поддержки HTTPS)

Активация IIS

  1. В Windows последовательно выберите Панель управления>Программы>Программы и компоненты>Включение или отключение компонентов Windows (в левой части экрана).
  2. Установите флажок Службы IIS. Нажмите ОК.

Для установки служб IIS, возможно, потребуется перезагрузить компьютер.

Настройка служб IIS

В службах IIS нужно настроить веб-сайт со следующими характеристиками:

  • Имя узла. Обычно используется Веб-сайт по умолчанию со значением localhost, заданным параметру Имя узла. Но можно также задать любой допустимый веб-сайт IIS с уникальным именем узла.
  • Привязка сайта
    • Для приложений, которым требуется протокол HTTPS, создайте привязку к порту 443 с помощью сертификата. Обычно используется сертификат разработки IIS Express, но подойдет и любой другой действительный сертификат.
    • Для приложений, использующих протокол HTTP, подтвердите привязку к порту 80 или создайте привязку к порту 80 для нового сайта.
    • Используйте одну привязку либо для HTTP, либо для HTTPS. Одновременная привязка к портам HTTP и HTTPS не поддерживается.

Включение поддержки служб IIS в Visual Studio во время разработки

  1. Запустите установщик Visual Studio.

  2. Выберите Изменить в установщике программы Visual Studio, которую планируется использовать для поддержки IIS во время разработки.

  3. Для рабочей нагрузки ASP.NET и разработка веб-приложений найдите и установите компонент Поддержка времени разработки в IIS.

    Компонент находится в разделе Дополнительно под пунктом Поддержка времени разработки в IIS на панели Сведения об установке справа от рабочих нагрузок. Этот компонент выполнит установку модуля ASP.NET Core, который является собственным модулем IIS, необходимым для запуска приложений ASP.NET Core со службами IIS.

Настройка проекта

перенаправления HTTPS;

Если новому проекту требуется протокол HTTPS, установите флажок Настроить для HTTPS в окне Создание веб-приложения ASP.NET Core. Установка флажка добавляет перенаправление HTTPS и ПО промежуточного слоя HSTS для приложения при его создании.

Если существующему проекту требуется протокол HTTPS, используйте ПО промежуточного слоя перенаправления HTTPS и HSTS в Startup.Configure. Дополнительные сведения см. в статье Принудительное использование HTTPS.

Для проекта, который использует протокол HTTP, поддержку ПО промежуточного слоя перенаправления HTTPS и HSTS задавать не нужно. Настройка приложения не требуется.

Профиль запуска служб IIS

Создайте новый профиль запуска, чтобы добавить поддержку IIS во время разработки.

  1. В обозревателе решений щелкните проект правой кнопкой мыши. Выберите Свойства. Откройте вкладку Отладка.

  2. В разделе Профиль нажмите кнопку Новый. Во всплывающем окне присвойте новому профилю имя IIS. Нажмите кнопку ОК, чтобы создать проект.

  3. В поле Запуск выберите из списка значение IIS.

  4. Установите флажок Запуск браузера и укажите URL-адрес конечной точки.

    Если приложению требуется протокол HTTPS, используйте конечную точку HTTPS (https://). Для протокола HTTP используйте конечную точку HTTP (http://).

    Укажите то же имя узла и тот же порт, как в выполненной ранее настройке IIS. Обычно это localhost.

    Укажите имя приложения в конце URL-адреса.

    Например https://localhost/WebApplication1 (HTTPS) или http://localhost/WebApplication1 (HTTP) являются действительными URL-адресами конечной точки.

  5. В разделе Переменные среды нажмите кнопку Добавить. Для переменной среды задайте имяASPNETCORE_ENVIRONMENT и значениеDevelopment.

  6. В области Параметры веб-сервера в поле URL-адрес приложения задайте значение, соответствующее URL-адресу конечной точки в поле Запуск браузера.

  7. В Visual Studio 2019 и последующих версиях параметру Модель размещения задайте значение По умолчанию, чтобы использовать модель размещения проекта. Если для проекта задано свойство <AspNetCoreHostingModel> в файле проекта, используется значение свойства InProcess или OutOfProcess. Если свойство не задано, используется модель размещения приложения по умолчанию In Process. Если приложению требуется явно указать модель размещения, отличную от обычной модели размещения приложения, задайте параметру Модель размещения значение In Process или Out Of Process по необходимости.

  8. Сохраните профиль.

Если Visual Studio не используется, можно вручную добавить профиль запуска в файл launchSettings.json в папке Properties. В следующем примере настраивается профиль для использования протокола HTTPS.

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iis": {
      "applicationUrl": "https://localhost/WebApplication1",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS": {
      "commandName": "IIS",
      "launchBrowser": true,
      "launchUrl": "https://localhost/WebApplication1",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

Убедитесь, что конечные точки applicationUrl и launchUrl совпадают и используют тот же протокол (HTTP или HTTPS), что и конфигурация привязки IIS.

Запуск проекта

Запустите Visual Studio от имени администратора.

  • Убедитесь, что для раскрывающегося списка с конфигурацией сборки построения выбрано значение Отладка.
  • Настройте кнопку Начать отладку на профиль IIS и нажмите ее для запуска приложения.

Если вы вошли в Visual Studio без прав администратора, возможно, потребуется перезапуск. Перезапустите Visual Studio при появлении соответствующего запроса.

Если используется сертификат разработки без доверия, возможно, потребуется создать исключение для этого ненадежного сертификата по запросу в браузере.

Примечание.

Отладка конфигурации сборки выпуска с использованием функции Только мой код и оптимизации компилятора приводит к ограничению возможностей. Например, точки останова не будут достигнуты.

Дополнительные ресурсы

В этой статье описаны поддерживаемые в Visual Studio возможности для отладки приложений ASP.NET Core, выполняющихся в службах IIS в Windows Server. Также здесь приведены пошаговые инструкции по включению этого сценария и настройке проекта.

Необходимые компоненты

  • Visual Studio для Windows
  • Рабочая нагрузка ASP.NET и веб-разработка
  • Рабочая нагрузка Кроссплатформенная разработка .NET Core
  • Сертификат безопасности X.509 (для поддержки HTTPS)

Активация IIS

  1. В Windows последовательно выберите Панель управления>Программы>Программы и компоненты>Включение или отключение компонентов Windows (в левой части экрана).
  2. Установите флажок Службы IIS. Нажмите ОК.

Для установки служб IIS, возможно, потребуется перезагрузить компьютер.

Настройка служб IIS

В службах IIS нужно настроить веб-сайт со следующими характеристиками:

  • Имя узла. Обычно используется Веб-сайт по умолчанию со значением localhost, заданным параметру Имя узла. Но можно также задать любой допустимый веб-сайт IIS с уникальным именем узла.
  • Привязка сайта
    • Для приложений, которым требуется протокол HTTPS, создайте привязку к порту 443 с помощью сертификата. Обычно используется сертификат разработки IIS Express, но подойдет и любой другой действительный сертификат.
    • Для приложений, использующих протокол HTTP, подтвердите привязку к порту 80 или создайте привязку к порту 80 для нового сайта.
    • Используйте одну привязку либо для HTTP, либо для HTTPS. Одновременная привязка к портам HTTP и HTTPS не поддерживается.

Включение поддержки служб IIS в Visual Studio во время разработки

  1. Запустите установщик Visual Studio.

  2. Выберите Изменить в установщике программы Visual Studio, которую планируется использовать для поддержки IIS во время разработки.

  3. Для рабочей нагрузки ASP.NET и разработка веб-приложений найдите и установите компонент Поддержка времени разработки в IIS.

    Компонент находится в разделе Дополнительно под пунктом Поддержка времени разработки в IIS на панели Сведения об установке справа от рабочих нагрузок. Этот компонент выполнит установку модуля ASP.NET Core, который является собственным модулем IIS, необходимым для запуска приложений ASP.NET Core со службами IIS.

Настройка проекта

перенаправления HTTPS;

Если новому проекту требуется протокол HTTPS, установите флажок Настроить для HTTPS в окне Создание веб-приложения ASP.NET Core. Установка флажка добавляет перенаправление HTTPS и ПО промежуточного слоя HSTS для приложения при его создании.

Если существующему проекту требуется протокол HTTPS, используйте ПО промежуточного слоя перенаправления HTTPS и HSTS в Startup.Configure. Дополнительные сведения см. в статье Принудительное использование HTTPS.

Для проекта, который использует протокол HTTP, поддержку ПО промежуточного слоя перенаправления HTTPS и HSTS задавать не нужно. Настройка приложения не требуется.

Профиль запуска служб IIS

Создайте новый профиль запуска, чтобы добавить поддержку IIS во время разработки.

  1. В обозревателе решений щелкните проект правой кнопкой мыши. Выберите Свойства. Откройте вкладку Отладка.

  2. В разделе Профиль нажмите кнопку Новый. Во всплывающем окне присвойте новому профилю имя IIS. Нажмите кнопку ОК, чтобы создать проект.

  3. В поле Запуск выберите из списка значение IIS.

  4. Установите флажок Запуск браузера и укажите URL-адрес конечной точки.

    Если приложению требуется протокол HTTPS, используйте конечную точку HTTPS (https://). Для протокола HTTP используйте конечную точку HTTP (http://).

    Укажите то же имя узла и тот же порт, как в выполненной ранее настройке IIS. Обычно это localhost.

    Укажите имя приложения в конце URL-адреса.

    Например https://localhost/WebApplication1 (HTTPS) или http://localhost/WebApplication1 (HTTP) являются действительными URL-адресами конечной точки.

  5. В разделе Переменные среды нажмите кнопку Добавить. Для переменной среды задайте имяASPNETCORE_ENVIRONMENT и значениеDevelopment.

  6. В области Параметры веб-сервера в поле URL-адрес приложения задайте значение, соответствующее URL-адресу конечной точки в поле Запуск браузера.

  7. В Visual Studio 2019 и последующих версиях параметру Модель размещения задайте значение По умолчанию, чтобы использовать модель размещения проекта. Если для проекта задано свойство <AspNetCoreHostingModel> в файле проекта, используется значение свойства InProcess или OutOfProcess. Если свойство не задано, используется модель размещения приложения по умолчанию Out Of Process. Если приложению требуется явно указать модель размещения, отличную от обычной модели размещения приложения, задайте параметру Модель размещения значение In Process или Out Of Process по необходимости.

  8. Сохраните профиль.

Если Visual Studio не используется, можно вручную добавить профиль запуска в файл launchSettings.json в папке Properties. В следующем примере настраивается профиль для использования протокола HTTPS.

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iis": {
      "applicationUrl": "https://localhost/WebApplication1",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS": {
      "commandName": "IIS",
      "launchBrowser": true,
      "launchUrl": "https://localhost/WebApplication1",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

Убедитесь, что конечные точки applicationUrl и launchUrl совпадают и используют тот же протокол (HTTP или HTTPS), что и конфигурация привязки IIS.

Запуск проекта

Запустите Visual Studio от имени администратора.

  • Убедитесь, что для раскрывающегося списка с конфигурацией сборки построения выбрано значение Отладка.
  • Настройте кнопку Начать отладку на профиль IIS и нажмите ее для запуска приложения.

Если вы вошли в Visual Studio без прав администратора, возможно, потребуется перезапуск. Перезапустите Visual Studio при появлении соответствующего запроса.

Если используется сертификат разработки без доверия, возможно, потребуется создать исключение для этого ненадежного сертификата по запросу в браузере.

Примечание.

Отладка конфигурации сборки выпуска с использованием функции Только мой код и оптимизации компилятора приводит к ограничению возможностей. Например, точки останова не будут достигнуты.

Дополнительные ресурсы