《Windows Azure Platform 系列文章目录》
我们知道,Azure Web Site (改名为Azure Web App)默认是可以保留Session的。Azure Web App的架构图如下图:
上图中,我们可以观察到,Internet请求在发送到Azure Web App之前,会经过Frontend Server,也就是IIS ARR Server。IIS ARR基于Affinity Cookie,可以把请求发送到对应的某一台Azure Web App Server上。通过这种方式实现keep session会话保持。如下图:
上图的架构非常好,默认情况下Azure Web App就可以保留Session。比如我们部署在Azure Web App平台上的服务,我们可以通过Chrome按F12工具查看到以下内容:
上图的Cookies名称为ARRAffinity
但是在某些情况下,我们不需要保留Session。比如
(1)我们部署在Azure Web App上的应用只是页面浏览,不需要保留Session
(2)我们需要实现绝对负载均衡,不需要保留Session
这时候可以通过修改Web.config来去除ARRAffinity,如下图:
上图中,我们增加了Arr-Disable-Session-Affinity,设置值为true。
然后重新部署Azure Web App,通过Chrome按F12工具查看到以下内容:
我们修改完web.config文件以后,这个站点就不包含任何的Cookie信息了。
这样就可以实现绝对的负载均衡,当然,也不能保留Session了。