Публикация приложения 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, не рассматриваемые в этом руководстве:
- Создание куста реестра для защиты данных ASP.NET Core
- Настройка списка управления доступом (ACL) для пула приложений
- Чтобы сосредоточиться на принципах развертывания посредством служб IIS, в этом руководстве приложение развертывается без настройки протокола HTTPS в службах IIS. Дополнительные сведения о размещении приложения с поддержкой протокола HTTPS см. в статьях, посвященных безопасности, в разделе Дополнительные ресурсы этой статьи. Дополнительные рекомендации по размещению приложений ASP.NET Core приведены в статье Размещение ASP.NET Core в Windows со службами IIS.
Установка пакета размещения .NET Core
Установите пакет размещения .NET Core на сервере служб IIS. В составе пакета устанавливаются среда выполнения .NET Core, библиотека .NET Core и модуль ASP.NET Core. Модуль позволяет запускать приложения ASP.NET Core под управлением IIS.
Скачайте установщик по следующей ссылке:
Текущий установщик пакета размещения .NET Core (прямая загрузка)
Запустите установщик на сервере служб IIS.
Перезапустите сервер или выполните следующую
net start w3svc
командуnet stop was /y
в командной оболочке.
Создание сайта IIS
На сервере служб IIS создайте папку, в которой будут храниться файлы и папки опубликованного приложения. На следующем этапе путь к папке предоставляется IIS как физический путь к приложению. Дополнительные сведения о папке развертывания и структуре файлов приложения см. в статье Структура каталогов ASP.NET Core.
В окне диспетчера IIS на панели Подключения разверните узел сервера. Щелкните правой кнопкой мыши папку Сайты. В контекстном меню выберите пункт Добавить веб-сайт.
Укажите Имя сайта и задайте Физический путь к созданной папке развертывания приложения. Укажите конфигурацию привязки и нажмите кнопку ОК, чтобы создать веб-сайт.
Предупреждение
Не используйте привязки с подстановочными знаками (
http://*:80/
иhttp://+:80
) на верхнем уровне. Это может создать уязвимость и поставить ваше приложение под угрозу. Сюда относятся и строгие, и нестрогие подстановочные знаки. Вместо этого используйте имена узлов в явном виде. Привязки с подстановочными знаками на уровне дочерних доменов (например*.mysub.com
) не создают таких угроз безопасности, если вы полностью контролируете родительский домен (в отличие от варианта*.com
, создающего уязвимость). См. раздел RFC 9110: семантика HTTP (раздел 7.2. Дополнительные сведения см. в узле и :authority .Убедитесь, что модель identity процесса имеет соответствующие разрешения.
Если по умолчанию identity пул приложений (модель>Identity обработки) изменяется на
ApplicationPoolIdentity
другойidentity, убедитесь, что у нового identity есть необходимые разрешения для доступа к папке приложения, базе данных и другим необходимым ресурсам. Например, пулу приложений требуются права на чтение и запись в папках, в которых приложение считывает и записывает файлы.
Создание приложения Razor Pages ASP.NET Core
Чтобы создать приложение Razor Pages, следуйте инструкциям в руководстве Начало работы с ASP.NET Core.
Публикация и развертывание приложения
Публикация приложения означает создание скомпилированного приложения, которое можно разместить на сервере. Развертывание приложения означает перемещение опубликованного приложения в систему размещения. Публикация обеспечивается пакетом SDK для .NET Core, а развертывание может производиться различными способами. В этом руководстве применяется развертывание с помощью папок, которое состоит из следующих этапов:
- Приложение публикуется в папке.
- Содержимое папки перемещается в папку на сайте IIS (физический путь к сайту в диспетчере IIS).
- В обозревателе решений щелкните правой кнопкой мыши проект и выберите Опубликовать.
- В диалоговом оке Выберите целевой объект публикации выберите вариант публикации Папка.
- Укажите путь к папке или общей папке.
- Если вы создали для сайта IIS папку, доступную на компьютере разработки в качестве сетевой папки, укажите путь к общей папке. Для публикации в общей папке текущий пользователь должен иметь доступ на запись.
- Если выполнить развертывание непосредственно в папке сайта IIS на сервере IIS невозможно, опубликуйте приложение в папке на съемном носителе и физически переместите опубликованное приложение в папку сайта IIS на сервере, которая является физическим путем сайта в диспетчере IIS. Переместите содержимое папки
bin/Release/{TARGET FRAMEWORK}/publish
в папку сайта IIS на сервере, которая является физическим путем сайта в диспетчере IIS.
- Нажмите кнопку Опубликовать.
Открытие веб-сайта в браузере
Приложение будет доступно в браузере после получения первого запроса. Выполните запрос к приложению в привязке конечной точки, созданной в диспетчере служб IIS для сайта.
Следующие шаги
Из этого руководства вы узнали, как:
- установка пакета размещения .NET Core в Windows Server;
- создание сайта служб IIS в диспетчере служб IIS;
- развертывание приложения ASP.NET Core.
Дополнительные сведения о размещении приложений ASP.NET Core в службах IIS см. в обзорной статье о службах IIS:
Дополнительные ресурсы
Статьи в наборе документации по ASP.NET Core
- модуль ASP.NET Core (ANCM) для IIS
- структура каталогов ASP.NET Core
- Устранение неполадок ASP.NET Core в службе приложение Azure и IIS
- Принудительное применение HTTPS в ASP.NET Core
- WebSockets в IIS
Статьи, относящиеся к развертыванию приложений ASP.NET Core
- Публикация приложения ASP.NET Core в Azure с помощью Visual Studio
- Публикация приложения ASP.NET Core в Azure с помощью Visual Studio Code
- Профили публикации Visual Studio (.pubxml) для развертывания приложений ASP.NET Core
Статьи о конфигурации HTTPS служб IIS
Статьи о службах IIS и Windows Server
Ресурсы развертывания для администраторов IIS
- Документация по службам IIS
- Начало работы с диспетчером IIS в IIS
- Развертывание приложений .NET Core
- модуль ASP.NET Core (ANCM) для IIS
- структура каталогов ASP.NET Core
- Модули IIS с ASP.NET Core
- Устранение неполадок ASP.NET Core в службе приложение Azure и IIS
- Устранение распространенных неполадок в Службе приложений Azure и службах IIS с помощью ASP.NET Core
- Липкие сеансы с маршрутизацией запросов приложений
ASP.NET Core