为什么我的Azure Web App(WebSite)上会出现`Arr-Disable-Session-Affinity`标题?

时间:2015-05-22 19:15:01

标签: azure azure-web-sites

按照this article中的步骤,我在我的Azure Web App上使用此标题禁用了ARR Affinity cookie:

Arr-Disable-Session-Affinity: True

删除cookie,这是一件非常好的事情。但是,标题本身仍然存在。这个标题并没有真正伤害任何东西,但根据同一个文档它不应该存在:

  

如果添加Arr-Disable-Session-Affinity标头以禁用关联cookie,ARR将不会设置cookie,但它也将删除Arr-Disable-Session-Affinity标头本身,所以如果你的过程工作正常,你就不会看到。

那么......我怎样才能删除标题?

2 个答案:

答案 0 :(得分:1)

如果您在Azure Web App web.config中添加了 Arr-Disable-Session-Affinity 自定义标头,那么这是正确的行为,您仍然可以看到 Arr-禁用 - 会话关联标头,其值设置为true,并且在HTTP响应中删除了ARR cookie。我认为您提供的参考博客中的说法不正确,声明 Arr-Disable-Session-Affinity 标题将被删除。

如果你想删除那个标题,那么cookie就会出现,它是互斥的。

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

enter image description here

答案 1 :(得分:0)

您所引用的文章并未具体说明如何添加标题,因此我无法判断您是否正确执行了此操作。我没有测试,但根据this article你应该在Application_PreSendRequestHeaders中设置它:

protected void Application_PreSendRequestHeaders()
{
   Response.Headers.Remove("Server");
   Response.Headers.Remove("X-AspNet-Version");
   Response.Headers.Remove("X-AspNetMvc-Version");
   Response.Headers.Add("Arr-Disable-Session-Affinity", "True");
}