好吧,这是一个非常奇怪的,我甚至不知道如何正确地描述它。 我们有一个客户抱怨我们网站上的某个特定页面无法正常工作,我们的内部技术人员也能够重现这个问题。 大多数的网站工作正常。 这部署在Azure应用服务上。
我检查运行与技术人员完全相同的页面,它为我工作得很好。 整个请求是相同的,除了身份validationCookie。 当我运行请求,我得到200 OK,但技术人员和客户得到404未find。
这个问题只是在我们今天早上在Azure App Service上进行了一次VIP交换之后才开始的。 我今天早上部署了一个服务更新到分段部署交换,几分钟后做了VIP交换。 我认为客户和技术人员在VIP交换期间都会打开浏览器并启用会话。
我做了一些故障排除,这是我发现的。 我可以使用Fiddler捕捉网页的确切迹象,对我来说工作正常。 然后,我只能从请求获得404错误的技术人员的请求中复制一个值,突然间我也可以重现404错误。 差异是一个cookie:
Cookie: ARRAffinity=blahblahblahblah;
我的基本理解是,这是识别用户连接到哪个服务器的关键,因此它们可以与负载平衡集(2台服务器)中的特定实例相关联。 我们能够通过让技术人员和客户在浏览器中删除所有的cookies来解决这个问题,但是即使注销并返回也不能解决问题。
为什么一个“陈旧的”亲和关键在一个特定的页面上产生一个随机的404? 是否有可能某些用户的请求实际上被引导到旧的分段部署站点,即使他们正在点击连接到Production部署站点的URL?
这里有两件事情:
请让我们知道最后发生了什么。