阻止Azure网站设置WAWebSiteID和ARRAffinity cookie

时间:2013-05-28 12:45:10

标签: azure azure-web-sites arr

我有一个共享模式的Windows Azure网站。

现在,Azure显然会在我的网站上添加两个Cookie:WAWebSiteIDARRAffinity。 我了解到那些cookie可用于启用Azure负载均衡器后面的应用程序和请求路由功能(ARR)的粘性会话。

尽管如此,我的网站不需要粘性会话,我也不想让这些cookie出现。

首先,我从来没有想到粘性会话在我脑海中浮现,所以我编写了应用程序,以便在所有前端均匀分布的请求中很好地扩展。实际上,粘性会话会改变分发,因为有很多客户做了很多请求而客户几乎没有。当只有第一个请求被分发并且来自同一客户端的后续请求粘贴到同一服务器时,这对我的应用程序的整体性能有严重影响。

其次,出于数据隐私原因,我运行了一个无cookie应用程序,任何cookie都被认为是“邪恶的”。我知道我可以用一点点javascript删除它们,但我甚至不希望它们被传输到客户端。

问题是:如何在服务器端的Azure网站上禁用粘性会话和这两个cookie?

2 个答案:

答案 0 :(得分:16)

<强>更新

您现在可以在Web App设置中的门户中将其关闭。您还可以使用资源浏览器,如本博文中所述:https://blogs.msdn.microsoft.com/appserviceteam/2016/05/16/disable-session-affinity-cookie-arr-cookie-for-azure-web-apps/

<强>原始

我知道这是一个老问题,但似乎Azure IIS ARR已更新到版本3以及其他新功能,它具有“会话关联选择退出”。

Ben Ari在这里有一篇关于它的帖子: http://blogs.technet.com/b/erezs_iis_blog/archive/2013/09/16/new-features-in-arr-application-request-routing-3-0.aspx

简短版本是您可以将Arr-Disable-Session-Affinity: True添加到您的回复标题中,并且将禁用粘性会话。

最简单的方法是在customHeaders文件的web.config节点中添加标题,如下所示:

<system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="Arr-Disable-Session-Affinity" value="True" />
      </customHeaders>
    </httpProtocol>
</system.webServer>

答案 1 :(得分:0)

您无法禁用Azure网站的粘性会话。 ARR和粘性会话不适合您或您的应用。这些是Azure网站如何工作的基础支柱。粘性是将请求路由到farm(如果您有多个实例)。

检查this video以深入了解Azure网站。

<强>更新

由于此答案首次发布,因此对Azure Web Sites 应用程序进行了大量更新。其中一个可以选择退出Affinity Cookie。

查看Geoff的答案了解详情!