Azure App Service从.NET Core 3.1升级到.NET 6后的回滚版本疑问
Azure App Service .NET版本回滚问题解答
结论
你的操作没有完成真正的回滚,当前App Service实际运行的是.NET Framework 4.8,而非最初的.NET Core 3.1。
原因分析
- 早期基于.NET Core创建的Azure App Service,门户中显示空白版本是因为
.NET Core/.NET 5+属于独立的运行时栈配置(对应CLI的--linux-fx-version或--windows-fx-version参数),而netFrameworkVersion参数仅用于控制.NET Framework(4.x系列)的版本,二者是完全独立的配置项。 - 你执行的
az webapp config set --net-framework-version "v4.0"命令,会让Azure自动映射到.NET Framework的最新稳定版4.8(v4.0是.NET Framework的主版本标识,Azure默认会使用该主版本下的最新版),这就是门户显示.NET 4.8的原因。 - 最初的空白状态对应App Service使用.NET Core 3.1运行时栈,和.NET Framework属于不同的运行环境,不能通过修改
netFrameworkVersion来回滚。
正确回滚到.NET Core 3.1的步骤
根据你的App Service运行环境(Windows/Linux),执行对应的CLI命令:
Windows环境
az webapp config set --resource-group myresourcegroup --name myazureappservice --windows-fx-version "DOTNETCORE|3.1"
Linux环境
az webapp config set --resource-group myresourcegroup --name myazureappservice --linux-fx-version "DOTNETCORE:3.1"
验证回滚结果
执行以下命令确认配置是否生效:
Windows环境
az webapp config show --resource-group myresourcegroup --name myazureappservice --query 'windowsFxVersion'
返回结果应为"DOTNETCORE|3.1",此时门户的版本下拉框会重新显示为空白,对应.NET Core 3.1运行时。
Linux环境
az webapp config show --resource-group myresourcegroup --name myazureappservice --query 'linuxFxVersion'
返回结果应为"DOTNETCORE:3.1"。
内容的提问来源于stack exchange,提问作者Andrew Duffy
相关产品推荐
相关产品推荐

