如何将ASP.NET Core 2.1预览版应用部署到Azure?SDK安装异常求助
解决Azure Web App上.NET Core 2.1 Preview 1 SDK异常及部署问题
我来帮你拆解如何解决SDK显示异常的问题,以及正确部署ASP.NET Core 2.1 Preview 1应用到Azure Web App的步骤:
一、先搞定dotnet --info显示异常的问题
你在控制台看到的异常结果,本质是因为Azure Web App的系统全局SDK和你安装的站点扩展SDK是相互独立的——控制台默认调用的是主机系统自带的旧版本SDK,而你装的站点扩展是针对当前Web App的独立应用级SDK,不会自动覆盖全局版本。
要查看你安装的预览版SDK的真实信息,只需要在控制台里指定扩展的dotnet.exe路径运行即可:
D:\home\SiteExtensions\AspNetCoreRuntime.2.1.x64\dotnet.exe --info
这个路径是2.1 Preview 1扩展的标准安装位置,执行后就能看到你预期的预览版SDK信息了。
二、正确部署ASP.NET Core 2.1 Preview 1应用的步骤
1. 本地项目配置先对齐
首先确保你的本地项目配置正确:
- 打开项目的
.csproj文件,确认目标框架设置为netcoreapp2.1,如果用进程内托管模式可以加上对应配置:<PropertyGroup> <TargetFramework>netcoreapp2.1</TargetFramework> <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel> <!-- 可选,进程内托管性能更好 --> </PropertyGroup> - 发布时建议选自包含部署(SCD):这种方式会把完整的.NET Core 2.1 Preview 1 runtime打包到发布包里,不需要依赖Web App上的站点扩展,能彻底避免环境不一致的问题。如果坚持用框架依赖部署(FDD),则必须确保站点扩展已经正确安装并配置。
2. 配置Web App使用站点扩展SDK(仅FDD模式需要)
如果选择框架依赖部署,需要手动告诉Web App使用你安装的站点扩展里的runtime:
- 登录Azure门户,进入你的Web App,找到配置 > 应用程序设置;
- 添加两个环境变量:
- 变量名
DOTNET_ROOT,值设为D:\home\SiteExtensions\AspNetCoreRuntime.2.1.x64(指向站点扩展的SDK路径); - 变量名
ASPNETCORE_HOSTINGSTARTUPASSEMBLIES,值设为Microsoft.AspNetCore.Server.IISIntegration;
- 变量名
- 保存设置后,一定要重启Web App让配置生效。
3. 验证部署结果
部署完成后,可以通过以下方式验证:
- 直接访问你的应用,确认能正常启动并运行;
- 再次在控制台运行扩展路径下的
dotnet --info,确认SDK版本符合预期; - 如果应用启动失败,去Web App的日志流或诊断日志里查看具体错误信息,常见问题包括依赖缺失、路径配置错误等。
三、常见问题排查小技巧
- 站点扩展安装后不生效:先去Web App的站点扩展页面确认扩展状态是"已安装",重启Web App后再试;
- 自包含部署应用无法启动:发布时要选择对应Azure环境的目标运行时,比如Windows环境选
win-x64; - 权限相关报错:检查应用服务计划的权限配置,或者尝试重新发布应用包。
内容的提问来源于stack exchange,提问作者user8559109
相关产品推荐
相关产品推荐

