Развернуть приложение 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 для существующей службы приложений, выполните следующие действия:
- Перейдите в службу приложений, которую хотите обновить.
- Щелкните на Configuration левой панели навигации
- Нажмите General Settings в навигации на уровне страницы
- В разделе "Настройки стека" выберите.NET
- В разделе Версия платформы выберите.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, и он продолжает поддерживаться сегодня.