Blazor .NET 8发布至Linux版Azure App Service后无法运行问题
解决Linux Azure App Service上.NET 8版本不匹配问题
核心原因
Linux版Azure App Service的容器环境默认runtime版本未同步到你应用所需的8.0.0-rc.1.23419.4,且手动Bash修改容器环境的操作会在容器重启后失效——因为容器是临时实例,重启后会恢复到初始镜像状态。
解决方法
1. 强制指定.NET Runtime版本
- 登录Azure门户,进入你的App Service资源
- 转到配置 > 常规设置,确认Stack已选择
.NET 8 (LTS) - 切换到配置 > 应用程序设置,添加新的环境变量:
- 名称:
DOTNET_VERSION - 值:
8.0.0-rc.1.23419.4(或你应用依赖的具体版本)
- 名称:
- 保存设置后重启App Service,系统会自动拉取对应版本的runtime镜像
2. 采用自包含发布(推荐)
将应用和所需的.NET Runtime一起打包,彻底脱离对App Service环境runtime的依赖:
- 在Visual Studio发布向导中:
- 选择目标为Azure App Service,进入发布设置
- 展开部署模式,选择自包含
- 目标运行时选择
linux-x64 - 完成发布配置并重新部署
- 或使用.NET CLI命令发布:
生成的发布包会包含完整的dotnet publish -c Release -r linux-x64 --self-contained true8.0.0-rc.1.23419.4runtime,部署后直接运行即可
3. 重置App Service容器
如果上述方法无效,尝试重置容器以刷新环境:
- 在Azure门户的App Service概览页,点击重启按钮
- 或进入高级工具 > Kudu,点击调试控制台 > Bash,执行命令:
该命令会触发容器重启,Azure会重新拉取对应版本的官方镜像kill 1
内容的提问来源于stack exchange,提问作者DataWrangler1980
相关产品推荐
相关产品推荐

