4

根据今天宣布的ASP.NET Core 6版本,我认为.NET 6 将通过 Early Access 在 Azure 应用服务上立即可用(“第 0 天支持”):

我们很高兴地宣布,应用服务将在 Windows 和 Linux 应用服务计划的所有公共区域和场景中推出对.NET 6.0应用程序的第 0 天支持。

但是,在将我的 ASP.NET Core 应用程序升级到 ASP.NET Core 6、将我的 Azure App Service 配置为使用 .NET 6 并将我的应用程序发布到我现有的 Azure App Service 之后,我收到带有特定消息的 HTTP 错误 500.31:

找不到框架“Microsoft.NETCore.App”,版本“6.0.0”(x64)。

值得注意的是,它列出的唯一可用的 .NET 6 运行时是 RC2 ( 6.0.0-rc.2.21480.5),而不是今天的发布版本。

升级步骤

为了促进这一点,我执行了以下步骤:

  • 项目文件( csproj):更新了<TargetFramework />目标文件net6.0
  • 发布配置文件( 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部署模式发布我的 Web 应用程序
  • 我没有通过 Azure App Service Extensions 配置任何 .NET 运行时
  • 我没有配置AspNetCoreModule( V2)(这是 ASP.NET Core 3 所要求的)
  • 此 Azure 应用服务计划位于美国中南部地区
  • 我从今天发布的 Visual Studio 2022 发布

混合消息

虽然上面引用的Azure 应用服务更新表明将提供“第 0 天支持”,但 ASP.NET Core 6 公告的承诺较少:

在撰写本文时,.NET 6 正在积极部署到全球服务器网络,并配置为构建和运行 .NET 6 应用程序……这应该在本周末结束

我会假设 GitHub 上的 Azure 更新将是最权威的来源,但也许 Azure 团队尚未确认推出的问题?

相关话题

我之前发布了两个与将早期版本的 ASP.NET Core Web 应用程序发布到 Azure App Services 相关的问题,并遵循了与这些帖子相关的解决方案,但无济于事:

问题

如何使用 Early Access 计划将 ASP.NET Core 6 应用的发布版本部署到 Azure 应用服务?这还准备好了吗(根据Azure 应用服务公告)?还是我们需要等到周末(根据ASP.NET Core 6 公告)?

理想情况下,我想利用 Early Access 而不用我的应用程序分发运行时(作为自包含分发)或通过扩展安装运行时。显然,这些仍然是选项,但抢先体验的前提是它们不应该是必需的。

4

4 回答 4

2

我在使用 Azure DevOps 进行部署时遇到了这个问题,完全感到困惑。因此,我发布此内容是为了帮助遇到相同问题的任何人升级到 .NET 6 并使用 Azure DevOps 进行部署。

这实际上是一个很小的改变。

在发布的管道中,确保Runtime Stack选中的是DOTNETCORE 6(见下图)

在此处输入图像描述

于 2021-12-07T21:39:49.493 回答
2

好消息。这似乎是Azure 应用服务团队的“第 0 天”公告与实际可用性之间的暂时滞后。在这篇文章中,.NET 6 运行时现在至少可以在美国中南部地区通过抢先体验获得,而且可能还包括其他地区(未经证实)。最坏的情况,根据ASP.NET Core 6 的公告,这应该在本周末全球可用。

迁移步骤

从原始帖子重申,要迁移,您需要执行以下步骤:

  • 项目:将您的应用程序从ASP.NET 5 迁移到 ASP.NET 6;值得注意的是,在项目文件 ( csproj) 中:
    • 更新<TargetFramework />目标net6.0
    • 将所有Microsoft.AspNetCore.* NuGet 包更新到 6.0.0
  • 发布配置文件( pubxml):更新<TargetFramework />以定位net6.0
  • Azure 应用服务配置:将.NET 版本更新为“.NET 6(抢先体验)”

附加信息

不需要执行以下任何操作:

  • 重新启动 Azure 应用服务
  • Self-contained使用部署模式发布您的 Web 应用程序
  • 通过 Azure App Service Extensions 安装 .NET 运行时
  • 配置AspNetCoreModule( V2)(对于 ASP.NET Core 3 是必需的)

解决方法

如果您所在地区尚不提供抢先体验,并且您不想等到本周末,则有两种解决方法可供您使用,如该线程其他地方所建议的那样:

总而言之,微软至少可以声称它在“第一天”可用,并利用索引的模糊性。

于 2021-11-09T16:35:09.693 回答
1
  1. 您应该将 .NET 版本更改为.Net 6(Early Access).

  2. 并且您还需要在 scm 站点中安装扩展程序,如https://your_app_name.scm.azurewebsites.net. 搜索ASP.NET Core 6.0并安装它们。

    在此处输入图像描述

  3. 然后你可以重新启动你的 webapp 来检查。

于 2021-11-09T07:51:10.143 回答
0

我已使用自包含部署模式成功部署到应用服务。我所做的只是将csproj文件中的TargetFramework更改为net6.0,并将nuget所有包更新为6.0.0。

于 2021-11-09T06:50:39.907 回答