Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Службы интернет-информации (IIS) — это гибкий веб-сервер универсального назначения, который работает на операционной системе Windows и может размещать приложения ASP.NET Core. IIS — это хороший выбор, если необходимо запускать приложения ASP.NET Core в Windows Server в локальной или гибридной среде, требуется проверка подлинности Windows или требуется интеграция с другими функциями IIS, такими как перезапись URL-адресов, маршрутизация запросов приложений или централизованное управление сертификатами.
В этом учебнике рассматриваются следующие темы:
- Установите набор для размещения .NET на Windows Server.
- Создайте сайт в IIS Manager.
- развертывание приложения ASP.NET Core.
Prerequisites
- Пакет SDK для .NET , установленный на компьютере разработки.
- Сервер Windows, настроенный с ролью Веб-сервер (IIS). Если ваш сервер не настроен для размещения веб-сайтов с IIS, выполните указания в разделе конфигурация IIS статьи Размещение ASP.NET Core в Windows с IIS, а затем вернитесь к этому руководству.
Warning
Принципы настройки служб 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
Установите пакет хостинга .NET для сервера IIS. Пакет устанавливает среду выполнения .NET, библиотеку .NET и модуль ASP.NET Core. Модуль позволяет запускать приложения ASP.NET Core под управлением IIS.
Приложения ASP.NET Core, размещенные в IIS, используют модель размещения в процессе по умолчанию (в версии ASP.NET Core 3.0). Размещение в процессе запускает приложение в том же процессе, что и рабочий процесс IIS (w3wp.exe), который обеспечивает лучшую производительность, чем размещение вне процесса. Дополнительные сведения см. в разделе Размещение ASP.NET Core в Windows со службами IIS.
Скачайте установщик по следующей ссылке:
Текущий установщик пакета для размещения .NET (загрузка напрямую)
Запустите установщик на сервере служб IIS.
Перезапустите сервер или выполните команды
net stop was /yиnet start w3svcв командной оболочке.
Создание сайта IIS
На сервере служб IIS создайте папку, в которой будут храниться файлы и папки опубликованного приложения. На следующем этапе путь к папке предоставляется IIS как физический путь к приложению. Дополнительные сведения о папке развертывания и структуре файлов приложения см. в статье Структура каталогов ASP.NET Core.
В окне диспетчера IIS на панели Подключения разверните узел сервера. Щелкните правой кнопкой мыши папку Сайты. В контекстном меню выберите пункт Добавить веб-сайт.
Укажите имя сайта и задайте физический путь к созданной папке развертывания приложения. Укажите конфигурацию привязки и создайте веб-сайт, нажав кнопку "ОК".
Warning
Не следует использовать привязки с подстановочными знаками (
http://*:80/иhttp://+:80) на верхнем уровне. Подстановочные символы верхнего уровня могут открыть ваш проект для угроз безопасности. Это относится как к строгим, так и к слабым подстановочным символам. Используйте явные имена хостов вместо подстановочных знаков. Привязки с подстановочными знаками на уровне дочерних доменов (например*.mysub.com) не создают таких угроз безопасности, если вы полностью контролируете родительский домен (в отличие от варианта*.com, создающего уязвимость). См. RFC 9110: Семантика HTTP (раздел 7.2. Host и :authority) для получения дополнительной информации.Убедитесь, что удостоверение модели процесса имеет соответствующие разрешения.
Если удостоверение пула приложений по умолчанию (модели обработки>Identity) изменяется с
ApplicationPoolIdentityна другое удостоверение, убедитесь, что новое удостоверение имеет необходимые разрешения для доступа к папке, базе данных и другим необходимым ресурсам приложения. Например, пулу приложений требуются права на чтение и запись в папках, в которых приложение считывает и записывает файлы.
Создание приложения ASP.NET Core
Создайте любое приложение на основе сервера ASP.NET Core.
Note
Это руководство основано на размещении серверного приложения ASP.NET Core с помощью IIS, включая Blazor Web App приложение. Для получения рекомендаций по размещению и развертыванию Blazor WebAssembly с IIS, см. статью Хостинг и развертывание ASP.NET Core с IIS.
Публикация и развертывание приложения
Публикация приложения означает создание скомпилированного приложения, которое можно разместить на сервере. Развертывание приложения означает перемещение опубликованного приложения в систему размещения. Шаг публикации обрабатывается пакетом SDK для .NET, а шаг развертывания может обрабатываться различными подходами. В этом руководстве используется подход развертывания папок где:
- Приложение публикуется в папке.
- Содержимое папки перемещается в папку сайта IIS ( физический путь к сайту в диспетчере IIS).
ASP.NET Core приложения можно публиковать как зависящие от фреймворка (на сервере должен быть установлен .NET) или самодостаточные (включают среду выполнения .NET в выходные данные). Для большинства развертываний IIS рекомендуется подход, зависящий от платформы, так как пакет размещения .NET предоставляет необходимую среду выполнения на сервере. Дополнительные сведения см. в статье о развертывании приложений .NET.
web.config Файл создается автоматически при публикации приложения. IIS использует этот файл для настройки модуля ASP.NET Core для приложения. Не удаляйте или вручную редактируйте web.config файл, если вы не вносите дополнительные изменения конфигурации.
- Щелкните проект правой кнопкой мыши в обозревателе решений и выберите "Опубликовать".
- В диалоговом окне "Публикация" выберите папку в качестве целевого объекта публикации и нажмите кнопку "Далее".
- Задайте путь к расположению папки .
- Если вы создали для сайта IIS папку, доступную на компьютере разработки в качестве сетевой папки, укажите путь к общей папке. Для публикации на общий ресурс текущий пользователь должен иметь права на запись.
- Если вы не можете развернуть непосредственно в папке сайта IIS на сервере IIS, опубликуйте в папку на съемном носителе и физически перенесите приложение в папку сайта IIS на сервере, которая указана как Физический путь в диспетчере IIS. Переместите содержимое папки
bin/Release/{TARGET FRAMEWORK}/publish(где{TARGET FRAMEWORK}— это идентификатор целевой платформы, напримерnet10.0) в папку сайта IIS на сервере, которая является физическим путем сайта в диспетчере IIS.
- Нажмите кнопку "Готово ", а затем нажмите кнопку "Опубликовать".
Открытие веб-сайта в браузере
Приложение будет доступно в браузере после получения первого запроса. Выполните запрос к приложению в привязке конечной точки, созданной в диспетчере IIS для сайта.
Дальнейшие шаги
Из этого руководства вы узнали, как:
- Установите набор для размещения .NET на Windows Server.
- Создайте сайт в IIS Manager.
- развертывание приложения 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
ASP.NET Core