Разворачиваем сайт ASP.NET на IIS

2022.04.21
Развернем сайт ASP.NET на IIS, сделаем бэкапы БД на MS SQL Server (тоже развернем), и рассмотрим решение попутных проблем

По работе поступило задание по администрированию сервера на Windows, среди прочего нужно было развернуть локальную копию сайт на Advantshop (ASP.NET) для тестирования интеграции.

Все действия проводились в Windows 8/10/11 Server 2012.

IIS

Установка

Пройдем по пути: Панель управления - Программы - Включение и отклюение компонентов Windows

Нас интересуют Службы IIS, при клике будут выбраны минимально необходимые компоненты, дополнительно нужно будет выбрать:

Включение IIS с нужным набором данных

Говорят нужна перезагрузка ОС.

Вот так может выглядеть в меню Пуск

Затем нужно установить модуль для IIS URL Rewrite (через Web Platform Installer либо через файл установки) для настройки редиректов (например с www на без-www, с http на https).

Вот так выглядит графический интерфейс IIS

Сайты

Занятый порт

Сразу после установки IIS будет доступен тестовый сайт по адресу localhost на 80 порту. Однако, если до IIS уже кто-то занял 80 порт то запуск сайта не пройдет:

Вот такое сообщение при запуске сайта на занятом порту

Для сайта в IIS можно изменить порт, для этого в Подключения (слева) - Сайты (выбрать нужный сайт), затем в Действия (справа) - Основные настройки

Интерфейс смены порта сайта в IIS

Но если очень нужен занятый порт, тогда открываем консоль (cmd) и при помощи netstat выясняем кто занял нужный нам порт:

> netstat -aon

Активные подключения

  Имя    Локальный адрес        Внешний адрес          Состояние       PID
  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       2060
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       776
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:1025           0.0.0.0:0              LISTENING       548
  TCP    0.0.0.0:1026           0.0.0.0:0              LISTENING       952
  
  
> netstat -aon | findstr 0.0:80
  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       2060

Открываем диспетчер задач и среди процессов ищем тот, у которого PID 2060 (в моем случае это Apache): Процесс с PID 2060 который занял 80 порт

Дальше действуем на свое усмотрение.

Создание

Предполагается что сайт должен работать на ASP.NET поэтому нам нужен настроенный пул приложений. Для просмотра доступных пулов нужно перейти Подключения (слева) - Пулы приложений:

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

А для добавления нового: ПКМ на Пулы приложений - Добавить пул приложений:

Редактирование/создание нового пула приложений в IIS

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

Затем в Подключения (слева) - Сайты - Добавить веб-сайт:

Создание нового веб-сайта в IIS

Для того чтобы Имя узла (доменное имя) было доступно на локальном сервере необходимо от имени администратора в C:\Windows\System32\drivers\etc\hosts добавить:

127.0.0.1 mysite.local

Перезапуск

Перезапустить IIS можно в графическом интерфейсе:

Перезапуск IIS через графический интерфейс

MS SQL Server && SQL Server Management Studio

Microsoft SQL Server (ссылка на страницу скачивания) - СУБД от Microsoft.

SQL Server Management Studio (SSMS) (ссылка на страницу скачивания) - админка для управления.

Скачиваем по ссылкам и устанавливаем. Но если есть трудности в установке тогда здесь и тут статьи по установке.

Импорт/Экспорт БД

Все действия производятся в обозревателе объектов

Экспорт (резервная копия) делается: выбрать нужную БД - ПКМ - Задачи - Создать резервную копию.

С импортом немного сложнее.

Импорт резервной копии БД можно вливать без проблем если резервная копия и БД имеют одну структуру, но если БД была создана в одной версии ПО, а резервная копия из другой то могут быть проблемы.

А в простом случае: ПКМ на нужной БД - Задачи - Восстановить - База данных, в качестве источника выбираем Устройство и выбираем файл на диске.

Для разворачивания резервной копии в качестве новой БД нужно в разделе Базы данных ПКМ - Восстановить базу данных, и дальше также выбираем Устройство и выбираем файл на диске.

Вход по логину/паролю

Если во врем установки была выбрана Проверка подлинности Windows (это когда пользователь аутентифицируется на основании своей учетной записи Windows), тогда нужно включить смешанный режим (или на основании логин/пароль).

Запускаем SQL Server Management Studio.

Вот так может выглядеть в меню Пуск

Раскрываем список с именем сервера и идем: Безопасность - Имена для входа - ПКМ - Создать имя для входа и создаем нового пользователя для этого сервера выбрав Проверка подлинности SQL Server.

Здесь можно изменить пользователя sa либо создать нового

По умолчанию создается пользователь sa, для него тоже можно указать Проверка подлинности SQL Server и установить пароль, нажав в списке ПКМ на sa - Свойства.

В разделе Состояние:

Разворачивание копии сайта

Для разворачивания копии действующего сайта на локальном сервере мне потребовалось:

Итог

Администрирование сервера в графическом интерфейсе была непривычна и избыточна, но все получилось :)

В телеграм канале DevOps от первого лица можно оставить комментарий или почитать интересные истории из практики DevOps