Развертывание веб-приложения ASP.NET C# на виртуальной машине в Azure Stack Hub

Вы можете создать виртуальную машину для размещения веб-приложения C# ASP.NET в Azure Stack Hub. В этой статье показано, как настроить сервер, настроить его для размещения веб-приложения C# ASP.NET, а затем развернуть приложение прямо из Visual Studio.

В этой статье описывается использование Azure Stack Hub. Azure можно запустить в центре обработки данных с помощью Azure Stack Hub. Если вы ищете рекомендации по глобальной среде Azure, ознакомьтесь с публикацией приложения ASP.NET Core в Azure с помощью Visual Studio.

Необходимые компоненты

нет

Создание виртуальной машины

Создайте виртуальную машину и установите компоненты, необходимые для размещения веб-приложения .NET. Вам потребуется консоль управления IIS, веб-служба управления, среда выполнения .NET и Microsoft Web Deploy на виртуальной машине. Вам потребуется открыть порты для веб-сервера и веб-развертывания с компьютера разработки. При установке среды выполнения .NET убедитесь, что на целевом сервере и на компьютере разработки используется одна и та же версия .NET.

  1. Создайте виртуальную машину Windows Server.

  2. Чтобы установить компоненты IIS (с консолью управления) и .NET 5.0 на виртуальной машине, выполните следующий сценарий в консоли PowerShell 5.x:

    # Install IIS (with Management Console)
    Install-WindowsFeature -name Web-Server -IncludeManagementTools
    
    # Install Web Management Service
    Install-WindowsFeature -Name Web-Mgmt-Service
    
  3. Скачайте .NET 5.0 на виртуальную машину.

  4. Скачайте веб-развертывания версии 3.6. Установите его с помощью MSI-файла, а затем включите все компоненты.

  5. На портале Azure Stack Hub откройте порты, перечисленные в параметрах сети для виртуальной машины.

    a. Откройте портал Azure Stack Hub для своего клиента.

    b. Найдите вашу виртуальную машину. Возможно, вы закрепили ее на панели мониторинга. Найти виртуальную машину можно с помощью поля Поиск ресурсов.

    c. Выберите Сети.

    d. В разделе виртуальной машины выберите Добавить правило входящего порта.

    д) Добавьте правило безопасности для входящего трафика для следующих портов:

    Порт Протокол Description
    80 HTTP HTTP — это протокол, который используется для доставки веб-страниц с серверов. Клиенты подключаются по протоколу HTTP, используя DNS-имя или IP-адрес.
    443 HTTPS HTTPS — это безопасная версия протокола HTTP, которая использует сертификат безопасности и обеспечивает передачу данных в зашифрованном виде.
    22 SSH Secure Shell (SSH) — это сетевой протокол с применением шифрования для безопасного обмена данными. Это подключение будет использоваться с клиентом SSH для настройки виртуальной машины и развертывания приложения.
    3389 RDP Необязательно. Протокол удаленного рабочего стола позволяет выполнять подключение к удаленному рабочему столу, чтобы использовать графический пользовательский интерфейс вашего компьютера.
    8172 Пользовательское Порт, используемый веб-развертыванием.

    Для каждого порта:

    a. В поле Источник выберите Любой.

    b. В поле Диапазон исходных портов введите звездочку (*).

    c. Для параметра Назначение выберите значение Любой.

    d. Добавьте порт, который вы хотите открыть, в поле Диапазон портов назначения.

    д) Для параметра Протокол выберите значение Любой.

    f. В поле Действие выберите Разрешить.

    ж. Оставьте значение по умолчанию для параметра Приоритет.

    h. Введите имя и описание. Это поможет запомнить, почему порт был открыт.

    i. Выберите Добавить.

  6. В параметрах обзора виртуальной машины в Azure Stack Hub создайте DNS-имя сервера. Пользователи могут подключаться к веб-сайту по URL-адресу.

    a. Откройте портал Azure Stack Hub для своего клиента.

    b. Найдите вашу виртуальную машину. Возможно, вы закрепили ее на панели мониторинга. Найти виртуальную машину можно с помощью поля Поиск ресурсов.

    c. Выберите Обзор.

    d. В разделе DNS выберите "Настроить".

    д) Для параметра Назначение выберите значение Динамическое.

    f. Введите метку DNS-имени, например mywebapp, чтобы ваш полный URL-адрес стал примерно mywebapp.region.cloudapp.azurestack.corp.contoso.com.

Создание приложения

Вы можете использовать приложение .NET по умолчанию в Visual Studio, собственное веб-приложение, пример публикации приложения ASP.NET Core в Azure с помощью Visual Studio. В статье описывается создание и публикация веб-приложения ASP.NET на виртуальной машине Azure с помощью функции публикации Виртуальные машины Azure в Visual Studio 2019. После установки приложения убедитесь, что оно запущено локально, и обновите цель публикации на виртуальной машине Windows в своем экземпляре Azure Stack Hub.

Развертывание и запуск приложения

Создайте целевой объект публикации с компьютера разработки на виртуальной машине в Azure Stack Hub.

  1. Щелкните правой кнопкой мыши проект в обозревателе решений и выберите Опубликовать.

    Развертывание веб-приложения ASP.NET для публикации в Azure Stack Hub

  2. В окне публикации нажмите кнопку "Создать".

  3. Выберите веб-сервер (IIS).

  4. Нажмите кнопку "Далее>веб-развертывание".>

  5. Для сервера введите DNS-имя, определенное ранее, например mywebapp.region.cloudapp.azurestack.corp.contoso.com.

  6. Для имени сайта введите Default Web Siteили имя, используемое в IIS на целевом сервере.

  7. В поле Имя пользователя введите имя пользователя для компьютера.

  8. В поле Пароль введите пароль для этого компьютера.

  9. В качестве URL-адреса назначения введите URL-адрес для сайта, например http://mywebapp.region.cloudapp.azurestack.corp.contoso.com.

    Развертывание веб-приложения ASP.NET: настройка веб-развертывания

  10. Выберите Проверить подключение, чтобы проверить конфигурацию веб-развертывания. Нажмите кнопку Далее.

  11. Для параметра Конфигурация выберите значение Выпуск.

  12. Задайте для целевой платформы значение net5.0.

  13. Задайте режим развертывания как зависящий от платформы.

  14. Задайте целевую среду выполнения как win-x64.

  15. Выберите Сохранить.

  16. Выберите Опубликовать. В Visual Studio должны отобразиться следующие выходные данные в консоли:

    Publish Succeeded.
    Web App was published successfully http://mywebapp.region.cloudapp.azurestack.corp.contoso.com/
    ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
    ========== Publish: 1 succeeded, 0 failed, 0 skipped ==========
    
  17. Перейдите на новый сервер. Вы увидите запущенное веб-приложение.

    mywebapp.region.cloudapp.azurestack.corp.contoso.com