Развернуть приложение 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.NETCore3.1 в Azure из Visual Studio 2019
- Развернуть приложение ASP.NET Core 5 в существующей службе приложений 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)
Обходные пути
Если ранний доступ еще недоступен в вашем регионе и вы не хотите ждать до конца недели, вам доступны два обходных пути, как предложено в другом месте этой темы:
- Установите среду выполнения .NET 6 через расширение службы приложений (согласно ответу Джейсона Пана)
- Разверните с помощью автономного веб-приложения ASP.NET Core 6 (согласно ответу Эрика Имхаузера)
В общем, Microsoft может, по крайней мере, заявить, что это было доступно в «день 1», и воспользоваться двусмысленностью в индексировании.
Я успешно развернул службу приложений в автономном режиме развертывания. Все, что я сделал, это изменил 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"]