Публикация на IIS с помощью Web Deploy и Visual Studio

Sayed Ibrahim Hashimi

Публикация ASP.NET Core проекта на IIS с помощью Web Deploy требует нескольких дополнительных шагов по сравнению с проектом ASP.NET 4. Вы можете использовать эти инструкции, чтобы опубликовать ASP.NET Core веб приложение с помощью Web Deploy на любом IIS хосте.

Чтобы опубликовать ASP.NET Core приложение на удаленном IIS сервере, нужно сделать следующее:

  1. Настроить удаленный IIS сервер для поддержки ASP.NET Core
  2. Создать профиль публикации
  3. Настроить профиль для поддержки Web Deploy

Здесь мы пройдем каждый этап.

Подготовка веб сервера для ASP.NET Core

Во-первых, удаленный сервер должен быть настроен для ASP.NET Core. На высоком уровне вам нужны:

  1. IIS сервер с IIS 7.5+
  2. Установить HttpPlatformHandler
  3. Установить Web Deploy v3.6

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

В дополнении к установке HttpPlatformHandler вам нужно установить последнюю версию Web Deploy (версию 3.6). Чтобы установить Web Deploy 3.6, вы можете использовать Web Platform Installer (WebPI) или напрямую скачать это. Но лучше всего использовать WebPI. WebPI предлагает установку и настройку хостинговых провайдеров.

Настройка защиты данных

Чтобы сохранить ключи защиты данных, вы должны создать реестр для каждого пула приложения. Вы должны использовать скрипт `Provisioning PowerShell <https://github.com/aspnet/DataProtection/blob/dev/Provision-AutoGenKeys.ps1>`_для каждого пула приложения, под которым вы будете хостить ASP.NET Core приложение.

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

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

Защита данных используется различным связующим ПО ASP.NET, включая то, которое используется при аутентификации. Даже если вы специально не вызываете API защиты данных из кода, вы должны настроить защиту данных с помощью скрипта или в коде. Если вы не настроите защиту данных при использовании IIS, ключи будут храниться in-memory и сбрасываться при закрытии или перезапуске приложения. Тогда, например, любые куки, созданные для аутентификации, станут недействительными, и пользователям придется логиниться снова.

См. Публикация на IIS. Теперь давайте пойдем дальше.

Публикация с помощью Visual Studio

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

../_images/pub-dialog.png

После импорта публикационного профиля нужно предпринять еще один шаг, прежде чем мы сможем публиковать на стандартном IIS хосте. В сгенерированном скрипте PowerShell (в PropertiesPublishProfiles) обновите номер версии публикационного модуля с 1.0.1 на 1.0.2-beta2. После изменения 1.0.1 на 1.0.2-beta2 вы можете использовать Visual Studio для публикации.

Поделись хорошей новостью с друзьями!
Следи за новостями!