17

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

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

尽管如此,我的网站不需要粘性会话,而且我不希望周围有这些 cookie。

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

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

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

4

2 回答 2

16

更新

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

原来的

我知道这是一个老问题,但似乎 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>
于 2013-11-06T22:28:28.083 回答
0

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

观看此视频以更深入地了解 Azure 网站。

更新

自从首次发布此答案以来,Azure网站应用程序进行了很多更新。其中之一是可以选择退出 Affinity Cookie。

详情请查看Geoff答案!

于 2013-05-28T16:44:20.263 回答