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

Основываясь на сегодняшнем объявлении о выпуске ASP.NET Core 6 , я понимаю, что (« поддержка нулевого дня ») в Службах приложений Azure через ранний доступ:

Мы рады сообщить, что служба приложений развертывает поддержку нулевого дня для приложений .NET 6.0 во всех общедоступных регионах и сценариях как в планах службы приложений Windows, так и в Linux.

Однако после обновления моего приложения ASP.NET Core до ASP.NET Core 6, настройки моей службы приложений Azure для использования .NET 6 и публикации моего приложения в существующей службе приложений Azure я получаю ошибку HTTP 500.31 с конкретным сообщением:

Фреймворк Microsoft.NETCore.App версии 6.0.0 (x64) не найден.

Примечательно, что единственная среда выполнения .NET 6, которую он перечисляет как доступную, - это RC2 ( 6.0.0-rc.2.21480.5), а не сегодняшнюю версию.

Шаги по обновлению

Чтобы облегчить это, я выполнил следующие шаги:

  • Файл проекта (): обновлен, чтобы настроить таргетинг на
  • Профиль публикации ( pubxml): Обновлен <TargetFramework /> нацеливаться на net6.0
  • Файл проекта ( csproj): Обновил все Microsoft.AspNetCore.* Пакеты NuGet до 6.0.0
  • Конфигурация службы приложений Azure : обновлена версия .NET до «.NET 6 (ранний доступ)»

Сообщение об ошибке

Однако при доступе к моему сайту службы приложений Azure с включенными подробными ошибками я получаю следующую ошибку:

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

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

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

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

       It was not possible to find any compatible framework version 
The framework 'Microsoft.NETCore.App', version '6.0.0' (x64) was not found.

The following frameworks were found: 
2.2.14 at [D:\Program Files\dotnet\shared\Microsoft.NETCore.App] 
3.0.3 at [D:\Program Files\dotnet\shared\Microsoft.NETCore.App] 
3.1.15 at [D:\Program Files\dotnet\shared\Microsoft.NETCore.App] 
3.1.18 at [D:\Program Files\dotnet\shared\Microsoft.NETCore.App] 
5.0.7 at [D:\Program Files\dotnet\shared\Microsoft.NETCore.App] 
5.0.9 at [D:\Program Files\dotnet\shared\Microsoft.NETCore.App] 
6.0.0-rc.2.21480.5 at [D:\Program Files\dotnet\shared\Microsoft.NETCore.App] 

You can resolve the problem by installing the specified framework and/or SDK. 

The specified framework can be found at:
https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=6.0.0&arch=x64&rid=win10-x64

Дополнительная информация

  • Я перезапустил свою службу приложений Azure (очевидно!)
  • Я ждал (больше часа), пока среда выполнения будет установлена ​​через ранний доступ
  • Я публикую свое веб-приложение, используя Framework-dependent режим развертывания
  • У меня нет среды выполнения .NET, настроенной с помощью расширений службы приложений Azure.
  • у меня нет AspNetCoreModule( V2) настроен (как требовалось для ASP.NETCore3)
  • Этот план службы приложений Azure расположен в центрально-южном регионе США.
  • Я публикую с сегодняшнего выпуска Visual Studio 2022

Смешанные сообщения

В то время как процитированное выше предполагает, что будет " поддержка дня ", объявление менее актуально:

На момент написания этой статьи .NET 6 активно развертывается во всемирной сети серверов и настраивается для создания и запуска приложений .NET 6… что должно завершиться к концу этой недели.

Я предполагаю, что обновление Azure на GitHub будет наиболее авторитетным источником, но, возможно, есть проблемы с развертыванием, которые еще не были подтверждены командой Azure?

Похожие темы

Ранее я публиковал два вопроса, связанных с публикацией предыдущих ранних выпусков веб-приложений ASP.NET Core в Службы приложений Azure, и безрезультатно выполнял решения, относящиеся к этим сообщениям:

Вопрос

Как я могу развернуть окончательную версию приложения ASP.NET Core 6 в службе приложений Azure? Готово ли это вообще (согласно .NET 6 будет немедленно доступенобъявлению службы приложений Azureобновление службы приложений Azure )? Или нам нужно подождать до конца недели (согласно нулевогоанонсу ASP.NET Core 6ASP.NET Core 6 )?

5 ответов

Я столкнулся с этой проблемой при развертывании с помощью Azure DevOps и совершенно запутался. Поэтому я публикую это, чтобы помочь всем, кто сталкивается с той же проблемой при обновлении до .NET 6 и использовании Azure DevOps для развертывания.

На самом деле нужно было совсем небольшое изменение.

В конвейере для выпуска убедитесь, что Runtime Stackвыбрано DOTNETCORE 6(см. изображение ниже)

Хорошие новости. Похоже, что это временная задержка между объявлением группы службы приложений Azure о «дне 0» и фактической доступностью. На момент написания этой публикации среда выполнения .NET 6 теперь доступна через ранний доступ, как минимум, в южно-центральной части США, а также, предположительно, в других регионах (неподтверждено). В худшем случае, если исходить из анонса ASP.NET Core 6 , это должно быть глобально доступно к концу недели.

Шаги миграции

Чтобы повторить исходный пост, для миграции вам необходимо выполнить следующие шаги:

  • Проект : перенос вашего приложения, например, с ASP.NET 5 на ASP.NET 6; в частности, в файле проекта ( csproj):
    • Обновите, чтобы настроить таргетинг на
    • Обновить все Microsoft.AspNetCore.* Пакеты NuGet для версии 6.0.0
  • Публикация профиля ( pubxml): обновить <TargetFramework />ориентироваться на net6.0
  • Конфигурация службы приложений Azure : версия .NET обновлена ​​до «.NET 6 (ранний доступ)» .

Дополнительная информация

Вам не нужно делать ничего из следующего:

  • Перезапустите службу приложений Azure.
  • Опубликуйте свое веб-приложение с помощью Self-containedрежим развертывания
  • Установите среду выполнения .NET с помощью расширений службы приложений Azure.
  • Настройте AspNetCoreModule( V2) (как это требовалось для ASP.NET Core 3)

Обходные пути

Если ранний доступ еще недоступен в вашем регионе и вы не хотите ждать до конца недели, вам доступны два обходных пути, как предложено в другом месте этой темы:

В общем, Microsoft может, по крайней мере, заявить, что это было доступно в «день 1», и воспользоваться двусмысленностью в индексировании.

  1. Вам следует изменить версию .NET на .Net 6(Early Access).

  2. И вам также необходимо установить расширение на сайте scm, например, URL-адрес https://your_app_name.scm.azurewebsites.net. Поиск ASP.NET Core 6.0, и установите их.

  3. Затем вы можете перезапустить свое веб-приложение, чтобы проверить.

Я успешно развернул службу приложений в автономном режиме развертывания. Все, что я сделал, это изменил TargetFramework на net6.0 в файле csproj и обновил nuget all packages до 6.0.0.

У меня такая же проблема. В службах приложений доступна только предварительная версия .NET 6. Я жду развертывания…

      "microsoft.aspnetcore.app":["2.1.30","2.2.14","3.0.3","3.1.15","3.1.18","5.0.7","5.0.9","6.0.0-rc.2.21480.10"]
Другие вопросы по тегам