Разверните службу приложений Azure с несколькими виртуальными приложениями с помощью Visual Studio 2022

В настоящее время я использую облачную службу Azure (классическую) и могу эффективно развернуть веб-приложение, содержащее 4 виртуальных приложения, с помощью проекта облачной службы Azure. Мой файл ServiceDefinition.csdef выглядит так:

<?xml version = "1.0" encoding = "utf-8"?>
<ServiceDefinition name = "My.Azure.Web.API" xmlns = "http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion = "2015-04.2.6">
  <WebRole name = "My.Web.API" vmsize = "Small">
    <Sites>
      <Site name = "Web" physicalDirectory = "{path to My.Web.API}">
        <VirtualApplication name = "webapp1" physicalDirectory = "{path to My.Web.WebApp1}" />
        <VirtualApplication name = "webapp2" physicalDirectory = "{path to My.Web.WebApp2}" />
        <VirtualApplication name = "webapp3" physicalDirectory = "{path to My.Web.WebApp3}" />
        <VirtualApplication name = "webapp4" physicalDirectory = "{path to My.Web.WebApp4}" />
        <Bindings>
          <Binding name = "Endpoint1" endpointName = "Endpoint1" />
          <Binding name = "HttpsIn" endpointName = "HttpsIn" />
        </Bindings>
      </Site>
    </Sites>
    <Endpoints>
      <InputEndpoint name = "Endpoint1" protocol = "http" port = "80" />
      <InputEndpoint name = "HttpsIn" protocol = "https" port = "443" certificate = "{certname}" />
    </Endpoints>
    <Imports>
      <!--<Import moduleName = "Diagnostics" />-->
      <Import moduleName = "RemoteAccess" />
      <Import moduleName = "RemoteForwarder" />
    </Imports>
    <ConfigurationSettings>
      
    </ConfigurationSettings>
    <Certificates>
      <Certificate name = "{certname}" storeLocation = "LocalMachine" storeName = "My" />
    </Certificates>
  </WebRole>
</ServiceDefinition>

Я работаю над переходом на Службу приложений Azure, и, несмотря на некоторые значительные исследования, я не могу найти эквивалентный/похожий процесс развертывания в Visual Studio для нескольких виртуальных приложений в Службе приложений Azure.

Я нашел множество публикаций, указывающих на использование функции публикации в реальных проектах WebApp, но мне пришлось бы выполнять 4 отдельных развертывания вместо одного. И необходимо предварительно определить виртуальные каталоги в конфигурации службы приложений. При текущем подходе виртуальные приложения/каталоги определяются во время развертывания.

Я планирую в конечном итоге перейти на Azure DevOps Pipelines для CI/CD и надеюсь, что есть механизм для достижения этого, но сейчас мне просто нужно что-то функциональное из Visual Studio.

Существует ли эквивалентный/похожий процесс развертывания в Visual Studio для нескольких виртуальных приложений в службе приложений Azure? Если нет, то какие есть варианты?

Извиняюсь, если это повтор. Я провел должную осмотрительность без окончательных ответов. Если, конечно, ответ прямо передо мной!? Спасибо за ваше время!

Эрик

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
117
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Выполните следующие действия, чтобы развернуть несколько виртуальных приложений в службе приложений Azure из Visual Studio 2022.

  • Создайте новую службу приложений на портале Azure.

  • В обзоре службы приложений щелкните значок Download publish profile.

  • В VS 2022 создайте приложения нужного вам фреймворка. Я взял .NET Core Apps в качестве примера.

Структура папки проекта Visual Studio

Возможность создания Virtual Directories на портале Azure доступна только для Azure Windows App Service.

  • В Azure Portal => App Service => Configuration => Path mappings => Под Virtual applications and directories создайте New Virtual application.

  • Убедитесь, что Virtual Path такой же, как Web App Name в VisualStudio.

Публикуйте каждое приложение в VS в службе приложений Azure, используя загруженный профиль публикации.

  • Щелкните правой кнопкой мыши проект 1st WebApp => Publish => Добавить профиль публикации => Import Profile.

  • Просмотрите и загрузите Publish Profile, который мы скачали с Azure Portal App Service.

  • Измените настройки Приложения.
  • Имя сайта должно быть App Service name/VirtualPathName, которое мы создали на портале. Пример: Вот это VirtualApps29Dec/WebApp1.

  • Сохраните и перейдите к следующим шагам, чтобы опубликовать приложение.

  • Выполните те же действия с теми же Publish Profile для WebApp2, WebApp3 и WebApp4.

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

Url's для приложений будет

https://virtualapps29dec.azurewebsites.net/WebApp1
https://virtualapps29dec.azurewebsites.net/WebApp2
https://virtualapps29dec.azurewebsites.net/WebApp3
https://virtualapps29dec.azurewebsites.net/WebApp4

Первоначально, когда я пытался получить доступ к приложениям, я получил следующую ошибку.

Когда я проверяю Web.config развернутых приложений, я вижу приведенный ниже код.

<?xml version = "1.0" encoding = "utf-8"?>
<configuration>
  <location path = "." inheritInChildApplications = "false">
    <system.webServer>
      <handlers>
        <add name = "aspNetCore" path = "*" verb = "*" modules = "AspNetCoreModuleV2" resourceType = "Unspecified" />
      </handlers>
      <aspNetCore processPath = "dotnet" arguments = ".\WebApp2.dll" stdoutLogEnabled = "false" stdoutLogFile = "\\?\%home%\LogFiles\stdout" hostingModel = "inprocess" />
    </system.webServer>
  </location>
</configuration>
<!--ProjectGuid: c238430b-40de-45d7-bbb7-ad96da7c4dc4-->
  • AspNetCoreModuleV2 не разрешает использование нескольких внутрипроцессных виртуальных приложений в рамках одного плана обслуживания приложений.

  • Я решил проблему, заменив AspNetCoreModuleV2 на AspNetCoreModule

  • Отредактируйте все файлы Web.config в развернутых приложениях.

Выход :

Ух ты! Какой исчерпывающий ответ .. Большое спасибо, Харшита. Я видел кусочки и кусочки, но никто не собирал их воедино так, как ты. Мне еще предстоит пройти через это, но это, очевидно, ответ! Я проверю и подтвержу, что мне удалось продублировать результаты!

SwartHack 29.12.2022 20:18

Другие вопросы по теме

Предупреждение при отправке на GitHub веб-приложения Azure Node.js: «Действия Node.js 12 устарели»
Как устранить несанкционированную ошибку при использовании API управления Azure?
Стандарт приложений логики — действие поставщика услуг не выполнено с кодом ошибки «InvalidServiceProviderConnection»
ВЕБ-ПРИЛОЖЕНИЕ AZURE: проблема: фатальная: не удалось выполнить аутентификацию для URL-адреса веб-приложения
Обновите web.config в выпуске Azure с помощью PowerShell
Приложение ASP.NET Core 6 не использует правильный порт при размещении в службе приложений Azure в Linux
Веб-приложение ASP.Net Core по умолчанию отображает валюту в долларах после развертывания в службе приложений Azure. Как изменить валюту по умолчанию?
Разверните Apisix на виртуальной машине Azure и получите ошибку 404 при маршруте к службе приложений
Развертывание приложения ASP.NET Core MVC в службе веб-приложений Azure дает сообщение «Ваше веб-приложение запущено и ожидает вашего контента»
Сбой запуска приложения после развертывания докеризованного образа в службе приложений Azure