2 votes

Erreurs d'Azure App Service après un changement de VIP - Bug d'Affinity ?

OK, celui-ci est vraiment bizarre et je ne sais même pas comment le décrire correctement. Un client s'est plaint qu'une page spécifique de notre site Web ne fonctionnait pas, et l'un de nos techniciens internes a également pu reproduire le problème. La majeure partie du site Web fonctionne bien. Le site est déployé sur Azure App Service.

J'ai vérifié en utilisant exactement la même page que le technicien, et cela a bien fonctionné pour moi. La requête entière est identique, à l'exception des cookies d'authentification. Lorsque je lance la requête, j'obtiens 200 OK, mais le technicien et le client obtiennent 404 NOT FOUND.

Le problème n'a commencé qu'après avoir effectué un échange VIP ce matin sur Azure App Service (que je ne connais pas). Ce matin, j'ai déployé une mise à jour de service dans l'échange de déploiement de mise en scène, puis quelques minutes plus tard, j'ai effectué l'échange VIP. Je pense que le client et le technicien avaient tous deux leur navigateur ouvert et leur session active pendant l'échange VIP.

J'ai fait un peu de dépannage, et voici ce que j'ai découvert. Je peux utiliser Fiddler pour capturer la trace exacte de la page Web qui fonctionne bien pour moi. Ensuite, je peux copier une seule valeur de la requête pour le technicien qui obtient l'erreur 404, et soudain, je peux reproduire l'erreur 404 également. La différence est un cookie :

Cookie: ARRAffinity=blahblahblahblah;

D'après ce que j'ai compris, il s'agit d'une clé permettant d'identifier le serveur auquel l'utilisateur se connecte afin qu'il obtienne une affinité avec une instance spécifique dans l'ensemble équilibré en charge (2 serveurs). Nous avons pu résoudre le problème en demandant au technicien et au client de supprimer tous les cookies dans leur navigateur, mais même en se déconnectant et en se reconnectant, le problème n'a pas été résolu.

Pourquoi une clé d'affinité "périmée" provoquerait-elle un 404 aléatoire sur une page spécifique ? Est-il possible que certaines requêtes de l'utilisateur soient en fait dirigées vers l'ancien site de déploiement de transit, même si elles touchent l'url qui se connecte au site de déploiement de production ?

2voto

AndyDunn Points 456

Il y a 2 choses ici :

  1. L'affinité de la session. Comme vous pouvez le lire dans cet article Vous pouvez désormais supprimer l'affinité de session dans les applications Web, si cela correspond à votre cas d'utilisation (par exemple, si vous gérez des sessions en dehors de l'application Web ou si vous ne disposez pas d'informations spécifiques à la session).
  2. L'erreur 404 est un peu étrange. Il se peut qu'elle provienne d'un déploiement défectueux, vous pouvez donc refaire un déploiement complet sur un nouvel emplacement et l'échanger à nouveau. Si vous avez toujours des erreurs, jetez un coup d'œil au site Web lui-même et voyez s'il n'y a pas de code "étatique" qui vous donnerait un comportement spécifique.

Faites-nous savoir ce qui s'est passé à la fin.

2 votes

Oui, il s'est avéré que c'était un déploiement défectueux. Un collègue de travail a suggéré la même chose. J'ai redéployé et échangé une seconde fois et le problème a disparu. C'était très étrange car presque toutes les pages fonctionnaient bien sauf une, et c'est un site MVC donc tout est dans les binaires... Mais bon.

1 votes

Je rencontre le même problème sur mon site. I

2 votes

@MarcO'Morain : Je n'ai jamais trouvé de moyen de détecter un déploiement défectueux. Il semble qu'environ 1 déploiement sur 10 présente des problèmes bizarres comme celui-ci, et la seule solution que j'ai trouvée est de se connecter au site de transit, de vérifier que tout fonctionne, avant de procéder à l'échange de VIP. Si je constate des comportements bizarres que je n'ai pas vus sur le site d'assurance qualité, ma solution est d'essayer un redéploiement et de voir si le problème disparaît. C'est très ennuyeux, mais c'est la meilleure solution que j'ai trouvée.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X