Публикация приложения ASP.NET Core в службах IIS

В этом руководстве описывается, как разместить приложение ASP.NET Core на сервере служб IIS.

В руководстве рассматриваются следующие действия:

  • установка пакета размещения .NET Core в Windows Server;
  • создание сайта служб IIS в диспетчере служб IIS;
  • развертывание приложения ASP.NET Core.

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

  • Пакет SDK для .NET Core, установленный на компьютере разработки.
  • Сервер Windows Server с настроенной ролью Веб-сервер (IIS). Если сервер не настроен для размещения веб-сайтов со службами IIS, следуйте указаниям в разделе Настройка служб IIS статьи Размещение ASP.NET Core в Windows со службами IIS, а затем вернитесь к этому руководству.

Предупреждение

Принципы настройки служб IIS и обеспечения безопасности веб-сайта не рассматриваются в этом руководстве. Перед размещением рабочих приложений в службах IIS ознакомьтесь с руководством по службам IIS в документации по Microsoft IIS и статьей о размещении ASP.NET Core с помощью служб IIS.

Важные сценарии размещения служб IIS, не рассматриваемые в этом руководстве:

Установка пакета размещения .NET Core

Установите пакет размещения .NET Core на сервере служб IIS. В составе пакета устанавливаются среда выполнения .NET Core, библиотека .NET Core и модуль ASP.NET Core. Модуль позволяет запускать приложения ASP.NET Core под управлением IIS.

Скачайте установщик по следующей ссылке:

Текущий установщик пакета размещения .NET Core (прямая загрузка)

  1. Запустите установщик на сервере служб IIS.

  2. Перезапустите сервер или выполните следующую net start w3svc команду net stop was /y в командной оболочке.

Создание сайта IIS

  1. На сервере служб IIS создайте папку, в которой будут храниться файлы и папки опубликованного приложения. На следующем этапе путь к папке предоставляется IIS как физический путь к приложению. Дополнительные сведения о папке развертывания и структуре файлов приложения см. в статье Структура каталогов ASP.NET Core.

  2. В окне диспетчера IIS на панели Подключения разверните узел сервера. Щелкните правой кнопкой мыши папку Сайты. В контекстном меню выберите пункт Добавить веб-сайт.

  3. Укажите Имя сайта и задайте Физический путь к созданной папке развертывания приложения. Укажите конфигурацию привязки и нажмите кнопку ОК, чтобы создать веб-сайт.

    Предупреждение

    Не используйте привязки с подстановочными знаками (http://*:80/ и http://+:80) на верхнем уровне. Это может создать уязвимость и поставить ваше приложение под угрозу. Сюда относятся и строгие, и нестрогие подстановочные знаки. Вместо этого используйте имена узлов в явном виде. Привязки с подстановочными знаками на уровне дочерних доменов (например *.mysub.com) не создают таких угроз безопасности, если вы полностью контролируете родительский домен (в отличие от варианта *.com, создающего уязвимость). См. раздел RFC 9110: семантика HTTP (раздел 7.2. Дополнительные сведения см. в узле и :authority .

  4. Убедитесь в том, что удостоверение модели процесса имеет соответствующие разрешения.

    При изменении удостоверения по умолчанию для пула приложений (Модель процесса>Identity) с ApplicationPoolIdentity на другое убедитесь в том, что у нового удостоверения есть соответствующие разрешения для доступа к папке приложения, базе данных и другим необходимым ресурсам. Например, пулу приложений требуются права на чтение и запись в папках, в которых приложение считывает и записывает файлы.

Создание приложения Razor Pages ASP.NET Core

Чтобы создать приложение Razor Pages, следуйте инструкциям в руководстве Начало работы с ASP.NET Core.

Публикация и развертывание приложения

Публикация приложения означает создание скомпилированного приложения, которое можно разместить на сервере. Развертывание приложения означает перемещение опубликованного приложения в систему размещения. Публикация обеспечивается пакетом SDK для .NET Core, а развертывание может производиться различными способами. В этом руководстве применяется развертывание с помощью папок, которое состоит из следующих этапов:

  • Приложение публикуется в папке.
  • Содержимое папки перемещается в папку на сайте IIS (физический путь к сайту в диспетчере IIS).
  1. В обозревателе решений щелкните правой кнопкой мыши проект и выберите Опубликовать.
  2. В диалоговом оке Выберите целевой объект публикации выберите вариант публикации Папка.
  3. Укажите путь к папке или общей папке.
    • Если вы создали для сайта IIS папку, доступную на компьютере разработки в качестве сетевой папки, укажите путь к общей папке. Для публикации в общей папке текущий пользователь должен иметь доступ на запись.
    • Если выполнить развертывание непосредственно в папке сайта IIS на сервере IIS невозможно, опубликуйте приложение в папке на съемном носителе и физически переместите опубликованное приложение в папку сайта IIS на сервере, которая является физическим путем сайта в диспетчере IIS. Переместите содержимое папки bin/Release/{TARGET FRAMEWORK}/publish в папку сайта IIS на сервере, которая является физическим путем сайта в диспетчере IIS.
  4. Нажмите кнопку Опубликовать.

Открытие веб-сайта в браузере

Приложение будет доступно в браузере после получения первого запроса. Выполните запрос к приложению в привязке конечной точки, созданной в диспетчере служб IIS для сайта.

Следующие шаги

В этом руководстве вы узнали, как выполнять следующие задачи:

  • установка пакета размещения .NET Core в Windows Server;
  • создание сайта служб IIS в диспетчере служб IIS;
  • развертывание приложения ASP.NET Core.

Дополнительные сведения о размещении приложений ASP.NET Core в службах IIS см. в обзорной статье о службах IIS:

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

Статьи в наборе документации по ASP.NET Core

Статьи, относящиеся к развертыванию приложений ASP.NET Core

Статьи о конфигурации HTTPS служб IIS

Статьи о службах IIS и Windows Server

Ресурсы развертывания для администраторов IIS