Развернуть приложение ASP.NET Core 5 в службе приложений Azure?

У меня есть существующая служба приложений Azure, работающая на ASP.NET Core 3.x. Я обновил приложение до сегодняшнего выпуска ASP.NET Core 5. Это отлично работает на моем локальном сервере IIS Express. Однако когда я публикую приложение в службе приложений с помощью Visual Studio, я получаю следующую ошибку:

Ошибка HTTP 500.31 - ANCM не удалось найти собственные зависимости

Общие решения этой проблемы:

Указанная версия Microsoft.NetCore.App или Microsoft.AspNetCore.App не найдена.

Конкретная ошибка, обнаруженная ANCM:

Не удалось найти совместимую версию фреймворка Фреймворк "Microsoft.AspNetCore.App", версия "5.0.0" не найден. - Были обнаружены следующие фреймворки: 2.1.20 в [D:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.App] 2.1.22 в [D:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.App] 2.2.11 в [D:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.App] 2.2.14 в [D:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.App] 3.0.3 в [D:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.App] 3.1.6 в [D:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.App] 3.1.8 в [D: \ Program Files (x86) \ dotnet \ shared \ Microsoft.AspNetCore.App]. Вы можете решить проблему, установив указанную платформу и / или SDK. Указанную структуру можно найти по адресу: - https://aka.ms/dotnet-core-applaunch?framework=Microsoft.AspNetCore.App&framework_version=5.0.0&arch=x86&rid=win10-x86

Я понял, что ASP.NET Core 5 будет немедленно доступен в Службах приложений Azure. Я пропустил шаг? Как я могу опубликовать веб-приложение ASP.NET Core 5 в службе приложений Azure? Или мне все еще нужно подождать, пока среда выполнения.NET 5 не станет доступной в Azure?

1 ответ

Решение

Это не совсем ясно из примечаний к выпуску, на которые вы ссылались, но для того, чтобы воспользоваться преимуществами новой функции раннего доступа к службе приложений (объявление), вам необходимо явно настроить службу приложений для использования стека.NET 5.

Настройка существующей службы приложений для.NET 5

Чтобы сделать это через портал Azure для существующей службы приложений, выполните следующие действия:

  1. Перейдите в службу приложений, которую хотите обновить.
  2. Щелкните на Configuration левой панели навигации
  3. Нажмите General Settings в навигации на уровне страницы
  4. В разделе "Настройки стека" выберите.NET
  5. В разделе Версия платформы выберите.NET 5

Примечание. Технически, как только вы это сделаете, у вас будет установлена ​​среда выполнения.NET 5 и вы сможете вернуться, например, к стеку времени выполнения.NET Core. Однако это помешает вам получить ранний доступ к последующим обновлениям.NET, поэтому я бы не рекомендовал это.

Настройка новой службы приложений для.NET 5

Это согласие на ранний доступ к службе приложений гораздо более явное при настройке новой службы приложений через портал Azure. В этом случае при создании службы приложений вам будет предложено выбрать стек среды выполнения, в котором.NET 5 явно помечен как .NET 5 (ранний доступ).

Примечание. Если у вас уже есть другая служба приложений, настроенная для использования раннего доступа к службе приложений в рамках того же плана службы приложений, то среда выполнения.NET 5 уже будет установлена ​​и доступна. Это связано с тем, что среды выполнения.NET совместно используются службами приложений в рамках одного плана службы приложений.

Предупреждения публикации Visual Studio

Даже с функцией раннего доступа вы все равно можете получить следующее предупреждение при публикации из Visual Studio 2019 16.8, если у вас включены проверки совместимости версий:

Для вашего приложения требуется среда выполнения.NET Core 5.0.0, но служба приложений Microsoft Azure поддерживает только следующие версии: 2.1.20, 2.1.22, 2.2.11, 2.2.14, 3.0.3, 3.1.6 и 3.1.8.

Несмотря на это, после публикации все должно работать, даже если вы используете режим развертывания, зависящий от платформы.

Ограничения

Как слово предупреждения: текущая реализация функции App Услуги Early Access не еще поддерживает интеграцию приложений Insights. Таким образом, если вы полагаетесь на автоматическую интеграцию из Azure, а не на настраиваемые инструменты, вы можете подождать, пока функция раннего доступа к службе приложений не поддержит интеграцию с Application Insights.

Примечание. Я создал проблему с запросом обновлений статуса относительно совместимости Application Insights, но еще не получил ответа.

Альтернативы

В качестве альтернативы вы можете вместо этого выбрать развертывание с использованием режима автономного развертывания в своем профиле публикации (*.pubxml). Такой подход требовался для новых выпусков.NET Core в службах приложений Azure до.NET 5, и он продолжает поддерживаться сегодня.

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