Azure App Service应用应使用哪种特定RID?切换RID会产生什么影响?
解答:Azure App Service中.NET Core 5.0 RID切换相关问题
一、win-x64切换为win10-x64的影响与故障风险
首先明确两个RID的核心差异:win-x64 是不绑定具体Windows版本的通用x64 RID,win10-x64 是限定仅支持Windows 10/Windows Server 2016及以上版本的x64 RID。
对托管在Azure App Service的应用的影响:
- 正常场景下不会出现功能故障:目前所有Azure App Service的Windows宿主节点均运行Windows Server 2019及以上版本操作系统,完全满足win10-x64的最低版本要求
- 新增的NuGet依赖可以正常运行:如果该依赖本身需要调用Windows 10+版本的系统API,使用win10-x64反而能避免通用RID下可能出现的API缺失异常
- 发布包的体积、启动速度、运行性能和切换前无明显差异
仅存在一种极端异常场景:如果你的业务代码中手动调用了Windows 8/8.1专属的已弃用系统API,切换后可能出现运行时错误,该场景在常规业务开发中几乎不会遇到。
二、Azure App Service推荐使用的RID
你可以根据项目依赖选择对应RID,无需强制使用某一特定版本:
- 若项目没有依赖特定Windows版本的组件:使用通用RID
win-x64即可,兼容性覆盖所有Azure Windows App Service节点 - 若项目有依赖需要win10+版本的NuGet包:直接使用
win10-x64即可,完全适配Azure的运行环境 - 如果你使用的是Linux计划的Azure App Service,对应使用
linux-x64即可
注意:无论选择哪种RID,都需要保证restore、build、publish三个操作使用的RID完全一致,避免出现依赖还原不全的问题。
内容的提问来源于stack exchange,提问作者Alexander
相关产品推荐
相关产品推荐

