В этом руководстве описывается, как разместить приложение ASP.NET Core на сервере служб IIS.
В руководстве рассматриваются следующие действия:
- установка пакета размещения .NET Core в Windows Server;
- создание сайта служб IIS в диспетчере служб IIS;
- развертывание приложения ASP.NET Core.
Предварительные требования
- Пакет SDK для .NET Core, установленный на компьютере разработки.
- Сервер Windows Server с настроенной ролью Веб-сервер (IIS) . Если сервер не настроен для размещения веб-сайтов со службами IIS, следуйте указаниям в разделе Настройка служб IIS статьи Размещение ASP.NET Core в Windows со службами IIS, а затем вернитесь к этому руководству.
Принципы настройки служб 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 Core
Установите пакет размещения .NET Core на сервере служб IIS. В составе пакета устанавливаются среда выполнения .NET Core, библиотека .NET Core и модуль ASP.NET Core. Модуль позволяет запускать приложения ASP.NET Core под управлением IIS.
Скачайте установщик по следующей ссылке:
- Запустите установщик на сервере служб IIS.
- Перезагрузите сервер или в командой оболочке выполните команду net stop was /y , а затем — net start w3svc .
Создание сайта IIS
- На сервере служб IIS создайте папку, в которой будут храниться файлы и папки опубликованного приложения. На следующем этапе путь к папке предоставляется IIS как физический путь к приложению. Дополнительные сведения о папке развертывания и структуре файлов приложения см. в статье Структура каталогов ASP.NET Core.
- В окне диспетчера IIS на панели Подключения разверните узел сервера. Щелкните правой кнопкой мыши папку Сайты. В контекстном меню выберите пункт Добавить веб-сайт.
- Укажите Имя сайта и задайте Физический путь к созданной папке развертывания приложения. Укажите конфигурацию привязки и нажмите кнопку ОК, чтобы создать веб-сайт.
Предупреждение Не используйте привязки с подстановочными знаками ( http://*:80/ и http://+:80 ) на верхнем уровне. Это может создать уязвимость и поставить ваше приложение под угрозу. Сюда относятся и строгие, и нестрогие подстановочные знаки. Вместо этого используйте имена узлов в явном виде.
Как запустить программу на VDS сервере | Настройка VDS VPS сервера
Привязки с подстановочными знаками на уровне дочерних доменов (например *.mysub.com ) не создают таких угроз безопасности, если вы полностью контролируете родительский домен (в отличие от варианта *.com , создающего уязвимость). См. статью RFC 9110: семантика HTTP (раздел 7.2). Host и :authority) для получения дополнительных сведений.
Создание приложения Razor Pages ASP.NET Core
Чтобы создать приложение Razor Pages, следуйте инструкциям в руководстве Начало работы с ASP.NET Core.
Публикация и развертывание приложения
Публикация приложения означает создание скомпилированного приложения, которое можно разместить на сервере. Развертывание приложения означает перемещение опубликованного приложения в систему размещения. Публикация обеспечивается пакетом SDK для .NET Core, а развертывание может производиться различными способами. В этом руководстве применяется развертывание с помощью папок, которое состоит из следующих этапов:
- Приложение публикуется в папке.
- Содержимое папки перемещается в папку на сайте IIS (физический путь к сайту в диспетчере IIS).
- Visual Studio
- Интерфейс командной строки .NET Core
- Visual Studio для Mac
- В обозревателе решений щелкните правой кнопкой мыши проект и выберите Опубликовать.
- В диалоговом оке Выберите целевой объект публикации выберите вариант публикации Папка.
- Укажите путь к папке или общей папке.
- Если вы создали для сайта IIS папку, доступную на компьютере разработки в качестве сетевой папки, укажите путь к общей папке. Для публикации в общей папке текущий пользователь должен иметь доступ на запись.
- Если выполнить развертывание непосредственно в папке сайта IIS на сервере IIS невозможно, опубликуйте приложение в папке на съемном носителе и физически переместите опубликованное приложение в папку сайта IIS на сервере, которая является физическим путем сайта в диспетчере IIS. Переместите содержимое папки bin/Release//publish в папку сайта IIS на сервере, которая является физическим путем сайта в диспетчере IIS.
- Нажмите кнопку Опубликовать.
dotnet publish —configuration Release
- В обозревателе решений щелкните правой кнопкой мыши проект и выберите пункты Опубликовать>Опубликовать в папку.
- Укажите путь в поле Выберите папку.
- Если вы создали для сайта IIS папку, доступную на компьютере разработки в качестве сетевой папки, укажите путь к общей папке. Для публикации в общей папке текущий пользователь должен иметь доступ на запись.
- Если выполнить развертывание непосредственно в папке сайта IIS на сервере IIS невозможно, опубликуйте приложение в папке на съемном носителе и физически переместите опубликованное приложение в папку сайта IIS на сервере, которая является физическим путем сайта в диспетчере IIS. Переместите содержимое папки bin/Release//publish в папку сайта IIS на сервере, которая является физическим путем сайта в диспетчере IIS.
- Нажмите кнопку Опубликовать.
Обзор веб-сайта
Приложение будет доступно в браузере после получения первого запроса. Выполните запрос к приложению в привязке конечной точки, созданной в диспетчере служб IIS для сайта.
Следующие шаги
В этом руководстве вы узнали, как:
- установка пакета размещения .NET Core в Windows Server;
- создание сайта служб IIS в диспетчере служб IIS;
- развертывание приложения 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
Статьи, относящиеся к развертыванию приложений ASP.NET Core
- Публикация приложения ASP.NET Core в Azure с помощью Visual Studio
- Публикация приложения ASP.NET Core в Azure с помощью Visual Studio Code
- Профили публикации Visual Studio (.pubxml) для развертывания приложений ASP.NET Core
- Публикация веб-приложения в папку с помощью Visual Studio для Mac
Статьи о конфигурации HTTPS служб IIS
- Настройка SSL в диспетчере служб IIS
- Настройка SSL в службах IIS
Статьи о службах IIS и Windows Server
- Официальный веб-сайт Microsoft IIS
- Библиотека технического содержимого по Windows Server
Ресурсы развертывания для администраторов IIS
- Документация по службам IIS
- Начало работы с диспетчером IIS в IIS
- Развертывание приложений .NET Core
- Модуль ASP.NET Core (ANCM) для IIS
- Структура каталогов ASP.NET Core
- Модули IIS с ASP.NET Core
- Устранение неполадок ASP.NET Core в Службе приложений Azure и IIS
- Устранение распространенных неполадок в Службе приложений Azure и службах IIS с помощью ASP.NET Core
Источник: learn.microsoft.com
Развертывание приложений Django
После того, как мы закончили разработку веб-приложения, оно должно быть размещено на хосте, чтобы общественность могла получить доступ к нему из любого места. Мы посмотрим, как развернуть и разместить приложение на экземпляре AWS EC2, используя Nginx в качестве веб-сервера и Gunicorn в качестве WSGI.
AWS EC2
Amazon Elastic Compute Cloud (Amazon EC2) — это веб-сервис, обеспечивающий масштабируемость вычислительных мощностей в облаке. Мы устанавливаем и размещаем наши веб-приложения на экземпляре EC2 после выбора AMI (OS) по нашему усмотрению. Подробнее об этом мы поговорим в следующих разделах.
NGINX
Nginx — это веб-сервер с открытым исходным кодом. Мы будем использовать Nginx для сервера наших веб-страниц по мере необходимости.
GUNICORN
Gunicorn — это серверная реализация интерфейса шлюза Web Server Gateway Interface (WSGI), который обычно используется для запуска веб-приложений Python.
WSGI — используется для переадресации запроса с веб-сервера на Python бэкэнд.
Мы не будем использовать сервер, который поставляется с django по умолчанию в производстве.
Развертывание приложения
Как разместить программу на сервере
Данное руководство устарело. Актуальное руководство: Руководство по ASP.NET Core
Последнее обновление: 31.10.2015
Как правило, большинство веб-приложений ASP.NET публикуются на веб-сервер IIS. Поэтому посмотрим на примере, как размещать веб-приложение на IIS-севере.
В начале сконфигурируем веб-сервер. Для этого откроем средство администрирования IIS: зайдем в Панель управления, затем выберем Администрирование->Диспетчер служб IIS. И нам откроется консоль управления IIS:
Будем размещать свой сайт в узле по умолчанию (в моем случае это Default Web Site). И для этого вначале создадим в каталоге этого узла папку для нашего приложения. По умолчанию каталогом для стандартного веб-узла является каталог C:inetpubwwwroot. Перейдем в нее и создадим в нем папку BookStore, которая будет содержать наше приложение.
Теперь нажмем правой кнопкой мыши на имя узла по умолчанию и выберем в появившемся меню пункт Добавить приложение :
В появившемся окне введем соответствующие настройки (в качестве физического пути приложения созданный выше каталог):
Сайт у нас практически создан. Теперь осталось разместить в каталоге C:inetpubwwwrootBookStore наше приложение.
Перейдем к приложению в Visual Studio. Нажмем правой кнопкой на название проекта и в появившемся меню выберем Publish :
Перед нами откроется мастер публикации, который предложит нам пройти несколько этапов. В начале выберем профиль:
Если не одного профиля не определено, то создадим, нажав на ссылку New. и выбрав какое-нибудь название.
После создания профиля нажмем на Next и перейдем к следующему этапу — Connection. На этом этапе для опции Publish Method выберем File System
Для опции Target Location определим физический путь к каталогу нашего сайта. В данном случае это путь C:inetpubwwwrootBookStore.
А для поля Destination URL указываем url, по которому будет доступно приложение, а именно http://localhost/BookStore.
После установки всех свойств жмем на кнопку Publish. После этого в Visual Studio в окне Output студия выдаст сводку об успешности или неуспешности публикации. Возможно, вы увидите сообщения «Отказано в доступе», из-за чего публикация пройдет неудачно:
В этом случае нам надо открыть доступ к папке C:inetpubwwwrootBookStore на запись (по умолчанию стоит доступ только на чтение) и повторить публикацию.
Либо как вариант, если мы не хотим раскрывать доступ на запись, то можно вручную скопировать и перенести все необходимые файлы в указанную выше папку. Как нам показывает окно Output, все файлы для публикации сохраняются в проекте в каталоге objReleasePackagePackageTmp. И мы можем просто скопировать все файлы из этого каталога и перенести их в каталог C:inetpubwwwrootBookStore.
Если мы при создании веб-приложения использовали движок базы данных localdb, то нам надо разместить базу данных на MS SQL Servere и соответсвенно изменить строку подключения к базе данных, чтобы использовать уже не localdb, который предназначен только для целей разработки, а MS SQL Server.
Источник: metanit.com