Публикация на IIS

Данное руководство устарело. Актуальное руководство: Руководство по ASP.NET Core 7

Последнее обновление: 26.03.2018

После завершения работы над приложением приложение его можно опубликовать, чтобы оно стало доступно широкому кругу пользователей. Как правило, для хостирования приложения будет применяться один из внешних хостингов, список которых можно посмотреть здесь. В данном же случае рассмотрим основные моменты публикации и развертывания приложения на локальном компьютере.

Традиционно веб-сервер IIS (Internet Information Services) применялся для развертывания веб-приложений. Для хостирования веб-приложений ASP.NET Core также может применяться IIS, только в отличие от предыдущих версий ASP.NET теперь его роль будет сводиться к прокси-серверу. Хостирование приложений ASP.NET Core на IIS происходит с помощью нативного модуля AspNetCoreModule, который сконфигурирован таким образом, чтобы перенаправлять запросы на веб-сервер Kestrel. Этот модуль управляет запуском внешнего процесса dotnet.exe, в рамках которого хостируется приложение, и перенаправляет все запросы от IIS к этому хостирующему процессу.

При разработке в Visual Studio публиковать приложения очень легко - среда разработки имеет для этого весь необходимый инструментарий. Так, возьмем какой-нибудь проект и в Visual Studio нажмем на него правой кнопкой мыши и в появившемся контекстном меню выберем пункт Publish:

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

И перед нами откроется окно публикации приложения:

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

Здесь нам доступно несколько вариантов публикации:

  • Microsoft Azure App Service: публикация в облаке Azure

  • IIS, FTP, etc: публикация через FTP

  • Folder: публикация в виде отдельного пакета в файловой системе текущей рабочей машины

  • Import Profile: импорт профиля, который содержит настройки публикации

  • Microsoft Azure Virtual Machines: публикация в облаке Azure, по сравнению с первой опцией обладает большими возможностями по управлению инфраструктурой развертывания

В данном случае выберем опцию Folder для создания пакета для публикации в файловой системе. И также укажем путь, по которому будет находиться пакет. В моем случае это каталог "C:\CoreApp". И в конце нажмем на кнопку Publish.

Далее откроется окно, где будут оображаться выбранные настройки конфигурации, и для продолжения публикации нажмем в нем кнопку Publish:

Публикация в файловой системе приложения ASP.NET Core MVC

И после окончания публикации по указанному пути (в моем случае это каталог C:\CoreApp) появятся опубликованные файлы.

Настройка IIS

Прежде всего нам надо включить функциональность Web Server (IIS) и настроить роли сервера. Для этого перейдем по пути Панель управления -> Программы и компоненты -> Включение или отключение компонентов Windows. В списке компонентов найдем Службы IIS (Internet Information Services) и отметим ее:

Включение IIS на ОС Windows

Здесь также надо отметить подпункт "Службы Интернета" (World Wide Web Services) и все его подпункты, а также подпункт "Консоль управления IIS" (IIS Management Console).

Нажмем на ОК, и весь необходимый функционал будет добавлен в операционную систему.

Затем нам необходимо установить специальный пакет .NET Core Windows Server Hosting. Его можно найти, перейдя на страницу https://www.microsoft.com/net/download/all. Далее на этой странице надо выбрать нужную версию .NET Core Runtime (.NET Core Runtime > .NET Core Runtime x.y.z. Далее на странице выбранной версии .NET Core Runtime перейти к подразделу Windows и выбрать Server Hosting Installer. После этого загрузится нужный пакет. Этот пакет устанавливает .NET Core Runtime, .NET Core Library и модуль ASP.NET Core Module. Данный модуль, как говорилось выше, как раз и создает проксирование между IIS и сервером Kestrel.

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

Конфигурация сервера

Для конфигурации IIS перейдем к консоли управления веб-сервером. Для этого перейдем по пути Панель управления -> Администрирование -> Диспетчер служб IIS:

Диспетчер служб IIS в Windows

Нажмем правой кнопкой на узел "сайты" и в контекстном меню выберем пункт "Добавить веб-сайт...". После этого нам откроется окно для добавления нового сайта:

Добавление приложения на IIS

В поле "Физический путь" здесь укажем каталог, в котором опубликовано приложение. А в качестве имени узла определим "localhost". Нажмем на OK, и приложение будет запущено.

Теперь перейдем к пункту Пулы приложений. Выберем пул нашего приложения и справа нажмем на ссылку Основные настройки:

Пул приложений в IIS

В открывшемся окне для параметра Версия среды CLR .NET установим значение Без управляемого кода:

Настройка среды пула приложений в IIS

После этого пул будет перезапущен, и мы сможем обращаться к нашему приложению по адресу localhost.

Развертывание приложения ASP.NET Core на IIS
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850