Skip to Content

Установка WebApi и UI на IIS под Windows 2016 Server

🔸 Перед началом работы установите все последние обновления Windows.

1. Включение компьютера в AD

(не требуется, если используется DHCP)

Перед установкой IIS настройте статический IP адрес и DNS. В DNS пропишите IP контроллера AD. Это нужно для включения компьютера в AD.

Правой кнопкой мыши щелкните по иконке «Network» в правом нижнем углу:

alt

Во всплывающем меню выберите «Open Network and Sharing Center»:

alt

В открывшемся окне «Network and Sharing Center» в левом меню выберите «Change adapter settings»:

alt

В открывшемся окне «Network Connections» выберите сетевой адаптер и щелкните по нему правой кнопкой мыши:

alt

Во всплывающем меню выберите «Properties»:

alt

В открывшемся окне «Ethernet Properties» щелкните по «Internet Protocol Version 4 (NCP/IPv4)»:

alt

В открывшемся окне «Internet Protocol Version 4 (NCP/IPv4) Properties» (рисунок 7) настройте параметры:

alt

Выберите «Use the following IP address» и пропишите значения полей «IP address», «Subnet mask» и «Default gateway».

Для VM значения этих полей можно узнать командой ipconfig

Выберите «Use the following DNS server addresses» и пропишите в поле «Preferred DNS server» IP контроллера домена.

Для удобства дальнейших настроек поменяйте имя компьютера, например, на «IIS». В главном меню Windows выберите пункт «Settings»:

alt

В открывшемся окне «Settings» выберите пункт меню «System»:

alt

И потом «About»:

alt

При помощи кнопки «Rename PC» переименуйте компьютер, дождитесь перезагрузки.

Здесь же присоедините компьютер к AD:

alt

Нажмите кнопку «Join a domain» и выберите имя AD:

alt

Нажмите кнопку «Next» и введите логин/пароль доменной учетной записи:

alt

Добавьте информацию о доменной учетной записи на компьютер, выбрав «Account type» = «Administrator»:

alt

Перезагрузите компьютер:

alt

После перезагрузки компьютера появится возможность входа в AD с доменной учетной записью:

alt

2. Установка IIS

Войдите в систему с локальной учетной записью Administrator:

alt

В «Server Manager» (откроется автоматически после входа в систему, также его можно запустить из главного меню), выберите «Add Roles and Features»:

alt

В «Before you begin» нажмите кнопку «Next»:

alt

В «Installation Type» оставьте выбор по умолчанию:

alt

В «Server Selection» оставьте по умолчанию:

alt

В «Server Roles» выберите «Web Server (IIS)»:

alt

В «Features» оставьте выбор по умолчанию:

alt

В «Web Server Role (IIS)» нажмите кнопку «Next»:

alt

В «Role Services» выберите «HTTP Redirection» и «Windows Authentication»:

alt

🔸 «WebDAV Publishing» выбирать нельзя. Если он выбран ранее – требуется его отключить, сняв галку.

В «Confirmation» нажмите кнопку «Install» и дождитесь завершения установки:

alt

3. Разворачивание узлов веб-приложения

Откройте оснастку для управления IIS:

alt

Создайте системную переменную окружения ASPNETCORE_ENVIRONMENT= ProdWin. Для этого в PoweShell выполните команду:

[System.Environment]::SetEnvironmentVariable('ASPNETCORE_ENVIRONMENT', 'ProdWin', [System.EnvironmentVariableTarget]::Machine)

Для узла WebApi создайте отдельный неуправляемый Application Pool с наименованием Primo.WebApi, Start Mode = AlwaysRunning и Regular Time Interval (minutes) = 0 (чтобы пулл приложений не выгружался, так как при выгрузке сломается работа фоновых служб приложения).

Добавление Application Pool:

alt

Параметры Application Pool:

alt

alt

Добавлен Application Pool с наименованием Primo.WebApi:

alt

Создайте папки C:\Primo\UI и C:\Primo\WebApi, в которые разархивируйте UI.zip и WebApi-IIS.zip из комплекта поставки.

Рабочий каталог узла UI:

alt

Рабочий каталог узла WebApi:

alt

Добавьте веб-узел Primo.WebApi, установите для него ранее созданный Application Pool с наименованием Primo.WebApi.

Добавление веб-узла Primo.WebApi:

alt

Параметры веб-узла Primo.WebApi:

alt

Добавлен веб-узел Primo.WebApi:

alt

Чтобы Primo.WebApi заработал под IIS, установите dotnet-hosting-7.0.11-win.exe (https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-aspnetcore-7.0.11-windows-hosting-bundle-installer) из комплекта поставки и перезагрузите компьютер.

Для создания узла UI сначала создайте для веб-сервера SSL-сертификат , так как этот узел будет работать по https.

Для промышленного узла необходимо использовать SSL-сертификат, выданный доверенным удостоверяющим центром.

Открытие оснастки управления сертификатами:

alt

Добавление самоподписанного SSL-сертификата:

alt

Параметры SSL-сертификата:

alt

SSL-сертификат с наименованием Primo установлен:

alt

Добавьте веб-узел Primo.UI, установите для него Application Pool с наименованием DefaultAppPool и выберите ранее созданный SSL-сертификат с наименованием Primo:

alt

На этом шаге узлы Primo.WebApi и Primo.UI по отдельности рабочие. Далее надо связать Primo.UI и Primo.WebApi, настроив реверс-прокси для API. Предварительно надо установить модули IIS из комплекта поставки (обязательно в приведенной ниже последовательности), обеспечивающие функциональность реверс-прокси:
rewrite_amd64_en-US.msi
requestRouter_amd64.msi

На узле Primo.UI настраиваем реверс-прокси для API.

Иконка оснастки управления правилами URL Rewrite:

alt

Добавление правила URL Rewrite:

alt

Выбор шаблона правила URL Rewrite:

alt

Параметры правила URL Rewrite:

alt

Параметры правила URL Rewrite:

Правило URL Rewrite добавлено:

alt

Чтобы ARR заработал, надо его активировать. Для этого попробуйте добавить «Reverse Proxy» правило:

alt

IIS выдаст предупреждение об активации ARR, на которое надо согласиться и нажать «ОК»:

alt

Добавлять «Reverse Proxy» правило не надо, это все нужно было только для активации ARR. Поэтому нажмите «Cancel»:

alt

Теперь ARR активировано, и узел Primo.UI может работать как реверс-прокси.

Управлять правилами также можно из Web.config (секция ) узла.

Расположение Web.config узла Primo.UI:

alt

Секция Web.config:

alt

Для каждого узла – Primo.UI и Primo.WebApi настройте максимальный размер загружаемых файлов.

Размер файлов для узла Primo.UI:

alt

Размер файлов для узла Primo.WebApi:

alt

Проверяем, что в appsettings.ProdWin.json для UseIISIntegration = true. Остальные настройки appsettings.ProdWin.json выставляем аналогично описанному в статье Установка WebApi как службы под Windows 2016 Server.

🔸 ВНИМАНИЕ!!! Файлы web.config для каждого узла идут в комплекте поставки: для Primo.WebApi в архиве WebApi-IIS.zip, для Primo.UI в папке Distr\Windows. Их содержимое может отличаться от приведенных в руководстве скриншотов.

Дополнительную информацию можно найти на официальном сайте Microsoft: URL Rewrite Module Configuration Reference и Using Failed Request Tracing to Trace Rewrite Rules.

Проверьте работоспособность, запуская приложение в браузере по адресу:

https://[адрес]:44392

Если WebApi работает с MS SQL SERVER, используя Windows-аутентификацию (Trusted_Connection=True), то для Application Pool с наименованием Primo.WebApi необходимо задать этого (доменного) Windows-пользователя.

Правой кнопкой мыши откройте окно Advanced Settings и найдите свойство Identity:

alt

Поменяйте значение свойства Identity – выберите Custom account и нажмите кнопку «Set…»:

alt

alt