Изменение целевой платформы в веб-приложении Azure - PullRequest
0 голосов
/ 11 июля 2019

Я хотел бы опубликовать веб-сайт ASP.NET Core 2.1 в Azure с помощью веб-приложения Azure для его размещения. При создании веб-приложения Azure на портале Azure одним из параметров является «Стек времени выполнения». В этом случае я бы установил его на «.NET Core 2.1», чтобы соответствовать структуре, которую использует мой код. Однако после создания веб-приложения я не вижу возможности редактировать этот параметр где-либо на портале Azure, так как бы я изменил его при необходимости в будущем?

Например, если бы я позже обновил код своего приложения для использования ASP.NET Core 2.2, как бы я изменил стек времени выполнения веб-приложения Azure на «.NET Core 2.2»? Есть ли параметр для редактирования этого в какой-либо области портала Azure? Или веб-приложение Azure просматривает код (возможно, файл .csproj) и автоматически обновляет целевую инфраструктуру, игнорируя при этом любые параметры? Или мне нужно удалить веб-приложение и создать новое с правильными настройками? (Если мне потребуется удалить веб-приложение и создать новое, есть ли какой-то рекомендуемый подход для планирования такой ситуации и сокращения времени простоя? Можно ли обновить промежуточный слот до более нового стека времени выполнения из рабочего слота, и тогда поменяться?)

Ответы [ 2 ]

0 голосов
/ 12 июля 2019

Предыдущий ответ правильный, вы можете управлять версией во время выполнения в Конфигурации настроек приложения.

Но вы также можете запустить dotnet publish --runtime win-x86, чтобы встроить свою собственную версию .Net Core в ваше приложение.Это добавляет некоторые накладные расходы, но вы контролируете версию во время выполнения.

.NET Core RID Catalog

Третий вариант - установить расширение сайта

enter image description here

0 голосов
/ 11 июля 2019

По крайней мере для хостов Linux, стек времени выполнения доступен через настройки службы приложения - он просто разделен на несколько свойств:

General Settings

На более техническом примечании к нему можно получить доступ через LinuxFxVersion:

    "siteProperties": {
      "metadata": null,
      "properties": [
        {
          "name": "LinuxFxVersion",
          "value": "DOTNETCORE|2.1"
        },
        {
          "name": "WindowsFxVersion",
          "value": null
        }
      ],
      "appSettings": null
    },

например. через Azure CLI :

az webapp config set -g MyResourceGroup -n MyUniqueApp --linux-fx-version DOTNETCORE|2.1

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

Изменение всего за один раз возможно, если вы используете что-то вроде конвейеров Azure. Задача развертывания службы приложений Azure позволяет одновременно развертывать приложение и устанавливать стек времени выполнения.

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

...