VIP交换后Azure应用服务错误 – 亲和力错误?

好吧,这是一个非常奇怪的,我甚至不知道如何正确地描述它。 我们有一个客户抱怨我们网站上的某个特定页面无法正常工作,我们的内部技术人员也能够重现这个问题。 大多数的网站工作正常。 这部署在Azure应用服务上。

我检查运行与技术人员完全相同的页面,它为我工作得很好。 整个请求是相同的,除了身份validationCookie。 当我运行请求,我得到200 OK,但技术人员和客户得到404未find。

这个问题只是在我们今天早上在Azure App Service上进行了一次VIP交换之后才开始的。 我今天早上部署了一个服务更新到分段部署交换,几分钟后做了VIP交换。 我认为客户和技术人员在VIP交换期间都会打开浏览器并启用会话。

我做了一些故障排除,这是我发现的。 我可以使用Fiddler捕捉网页的确切迹象,对我来说工作正常。 然后,我只能从请求获得404错误的技术人员的请求中复制一个值,突然间我也可以重现404错误。 差异是一个cookie:

Cookie: ARRAffinity=blahblahblahblah; 

我的基本理解是,这是识别用户连接到哪个服务器的关键,因此它们可以与负载平衡集(2台服务器)中的特定实例相关联。 我们能够通过让技术人员和客户在浏览器中删除所有的cookies来解决这个问题,但是即使注销并返回也不能解决问题。

为什么一个“陈旧的”亲和关键在一个特定的页面上产生一个随机的404? 是否有可能某些用户的请求实际上被引导到旧的分段部署站点,即使他们正在点击连接到Production部署站点的URL?

这里有两件事情:

  1. 会话亲和力。 正如你可以在这篇文章中看到的,你现在可以删除Web应用程序中的会话亲和力,如果这是你的用例(例如,你在Web应用程序之外处理会话,或者你没有会话特定的信息)。
  2. 404错误有点奇怪。 可能来自故障部署,因此您可能需要在新插槽上重新进行完整部署并重新进行交换。 如果仍然有错误,请查看网站本身,看看是否没有任何“有状态”的代码会给你具体的行为。

请让我们知道最后发生了什么。