通过IIS ARR实现的粘性会话/客户端亲和是否适配ASP.NET Core 3+/.NET 5
会话粘性依赖类ASP.NET MVC 5项目升级及等效云服务说明
升级到ASP.NET Core 3.1+/NET 5+的ARR兼容性
IIS ARR的会话粘性(客户端亲和)能力是在负载均衡层通过植入Cookie实现的,和应用运行的上层框架没有耦合关系:
- 只要升级后的应用仍部署在IIS环境下,且没有主动修改、删除ARR生成的粘性会话Cookie,原有ARR的路由逻辑完全可以正常使用,不受ASP.NET MVC 5到.NET Core的框架变更影响
- 若升级后计划脱离IIS部署(比如采用Kestrel直接对外提供服务),才需要替换ARR的负载均衡能力,改用其他支持会话粘性的负载均衡组件
注意:不建议开发依赖粘性会话或客户端亲和的解决方案,理想状态下Web应用的请求响应逻辑应是无状态的,水平扩容时请求可随机路由到任意服务器。粘性会话路由的成本依服务商不同而有高低差异,所幸IIS ARR是免费的,同时该机制也会对负载均衡的均匀分布造成负面影响。
非Azure平台的等效IIS+ARR功能支持
以下云平台均可提供和Azure WebApps搭载IIS+ARR等效的会话粘性能力:
- 阿里云:可通过应用型负载均衡ALB/传统型负载均衡CLB配置基于Cookie的会话粘性策略,后端搭配部署了IIS环境的云服务器ECS,实现和原有架构完全一致的能力
- 腾讯云:负载均衡CLB支持Cookie植入模式的会话粘性配置,后端云服务器CVM可自行部署IIS运行应用
- AWS:应用负载均衡ALB支持粘性会话功能,可选择负载均衡生成Cookie或者应用自定义Cookie的亲和规则,后端EC2实例部署IIS即可复用原有业务逻辑
- 华为云:弹性负载均衡ELB支持会话粘性配置,提供Cookie植入、Cookie重写等多种亲和模式,后端弹性云服务器ECS可部署IIS运行应用
- 自建机房/私有云:可直接沿用IIS+ARR的组合,也可使用Nginx、HAProxy等开源负载均衡组件配置基于Cookie的会话粘性,实现等效能力
内容的提问来源于stack exchange,提问作者Csaba Toth
相关产品推荐
相关产品推荐

