为什么我的Azure Web应用程序(网站)上会出现“Arr禁用会话关联”标题?

为什么我的Azure Web应用程序(网站)上会出现“Arr禁用会话关联”标题?,azure,azure-web-app-service,Azure,Azure Web App Service,按照中的过程,我在Azure Web应用上禁用了ARR关联cookie,并在响应中使用此标题: Arr-Disable-Session-Affinity: True 它确实移除了饼干,这是一件非常好的事情。但是,头球本身仍在通过。这个标题并没有伤害任何东西,但根据同一份文件,它不应该在那里: 如果添加Arr Disable Session Affinity头以禁用关联cookie,Arr将不会设置cookie,但它也会删除Arr Disable Session Affinity头本身,因此,如

按照中的过程,我在Azure Web应用上禁用了ARR关联cookie,并在响应中使用此标题:

Arr-Disable-Session-Affinity: True
它确实移除了饼干,这是一件非常好的事情。但是,头球本身仍在通过。这个标题并没有伤害任何东西,但根据同一份文件,它不应该在那里:

如果添加Arr Disable Session Affinity头以禁用关联cookie,Arr将不会设置cookie,但它也会删除Arr Disable Session Affinity头本身,因此,如果您的进程工作正常,您将看不到任何一个


那么…我如何让它也删除标题呢?

如果您在Azure Web App Web.config中添加了Arr Disable Session Affinity自定义标题,如下所示,然后,这是一个正确的行为,您仍然可以看到值设置为true的Arr Disable Session Affinity头,并且在HTTP响应中删除了Arr cookie。我认为这是你提供的参考博客中的一个不正确的陈述,它指出Arr Disable Session Affinity标题将被删除

如果您想删除该头,那么cookie将出现,它是互斥的

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


您提到的文章没有具体说明如何添加标题,因此我无法判断您是否正确。我还没有测试,但根据您的要求,您应该在应用程序\u PresandRequestHeaders中设置它:

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");
}

我正要问同样的问题,发现了你的问题。如果应用程序使用进程内状态和缩放,我想如果没有这个标题值,事情会变得不稳定?@timothylerussell如果你在proc状态下使用,那就什么都不要做。默认行为具有会话/服务器关联性,因此您应该没有问题。在我的情况下,我不想要亲和性,所以我必须添加这个标题来删除它。@MichaelHaren谢谢,这就是我的想法。不幸的是,安全扫描程序不喜欢affinity cookie,因为它不是httpOnly,也不需要SQL。我意识到的一点是,Azure UI没有正确反映更改,即使您在Web.config中设置了变量,门户中的属性也会显示:ON,并且不会相应地更改