ASP.NET Core 6应用部署到现有Azure App Service报500.31错误如何解决
根因说明
你遇到的报错本质是Azure App Service的.NET 6正式版运行时滚动推送未覆盖到你所在区域导致的:Azure官方宣称的「首日支持」指.NET 6正式发布当日启动全区域推送流程,而非所有区域瞬时完成部署,你所在的美国中南部区域当时仅完成了RC2版本运行时的部署,未上线正式版6.0.0运行时,因此依赖框架模式发布的应用无法找到对应版本的框架。
基于Early Access的解决方案(无需独立部署、无需手动安装运行时)
强制触发Early Access运行时加载
部分存量App Service实例不会自动响应界面选择的「.NET 6 (Early Access)」配置,可手动添加应用配置强制拉取正式版运行时:
- 进入App Service的「配置」-「应用设置」页面
- 新增配置项:键为
WEBSITE_DOTNET_EARLY_ACCESS,值为6.0 - 保存配置后,完全停止实例30秒以上,再重新启动,不要直接使用重启功能
- 进入Kudu控制台的Debug终端,执行
dotnet --list-runtimes确认已经出现Microsoft.NETCore.App 6.0.0(x64)和Microsoft.AspNetCore.App 6.0.0版本
配置校验
确认运行时存在后仍报错可排查以下配置:
- 检查App Service「配置」-「常规设置」中的「平台」选项,确认设置为64位,与你应用的目标架构一致
- 确认项目发布配置(pubxml)中没有指定特定运行时标识(RID),依赖框架模式发布时需保持RID默认值,不要绑定特定平台
- 清空本地发布缓存后重新发布应用,避免旧编译产物被重复部署
部署进度说明
.NET 6的全区域推送按官方公告预计在发布当周周末完成,若完成上述操作后仍未检测到正式版运行时,可等待24-48小时再重试,不同区域的推送优先级不同,美国中南部区域通常在正式发布后24小时内完成全量覆盖。
内容的提问来源于stack exchange,提问作者Jeremy Caney
相关产品推荐
相关产品推荐

